细粒度控制Grails程序的日志输出

    科技2025-04-13  16

           标准的Grails是配置了日志输出的,但是,无法满足我们的需求。理想状态是想输出谁的日志,想输出哪个级别,就输出谁,就输出哪个级别。而且,不同的程序的日志应该有区分度,不能都叫一个名字。

           首先,logback.groovy中设置带有程序名的日志输出文件。

    //李晓平 20170416 增加文件日志 appender("FILE", FileAppender) { //file = "/var/logs/@info.app.name@.log" file = "/var/logs/${Application.package.name}.log" append = true encoder(PatternLayoutEncoder) { pattern = '%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} ' + // Date '%clr(%5p) ' + // Log level '%clr(---){faint} %clr([%15.15t]){faint} ' + // Thread '%clr(%-40.40logger{39}){cyan} %clr(:){faint} ' + // Logger '%m%n%wex' // Message } }

        然后,定义日志输出的级别(也在这个文件中):

    root(INFO, ['FILE'])

       然后,编辑application.yml,细粒度设置程序的日志输出级别:

    #日志级别配置 logging: level: # org.springframework.web: DEBUG #Spring框架中的日志级别 org.springframework.web: ERROR #Spring框架中的日志级别 testlog4j00: INFO #用户程序名

      这样一来,就可以比较自如地控制日志的输出了。

     

    Processed: 0.008, SQL: 8