标准的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 #用户程序名
这样一来,就可以比较自如地控制日志的输出了。