我想将来自我的 grails 应用程序中的一个控制器的消息以信息级别记录到特定文件中。info 或任何其他级别的所有其他内容都应转到另一个默认日志记录文件。
但是,我根本无法log4J
填充 usage.log 文件,尽管它很高兴地记录到下面定义的“默认”附加程序。
任何人都可以就我的设置为什么不起作用提供任何线索吗?
我的 log4j 设置如下:
log4j = {
appenders {
console name: 'stdout',
layout: pattern(conversionPattern: '%d %-5p %c{1} - %m%n')
appender new DailyRollingFileAppender(
name: 'default',
datePattern: "'.'yyyy-MM-dd",
layout: pattern(conversionPattern: '%d %-5p %c{1} - %m%n'),
file: 'C:/logs/default.log'
)
//daily usage log
appender new DailyRollingFileAppender(
name: 'usage', datePattern: "'.'yyyy-MM-dd",
layout: pattern(conversionPattern: '%d %-5p %c{1} - %m%n'),
file: 'C:/logs/usage.log'
)
}
info usage: "grails.app.controllers.com.example.MyController",
additivity: false
root {
info 'stdout', 'default'
additivity = true
}
info 'grails.app'
}
更新
我已经能够通过替换特定的控制器类映射来解决这个问题
info usage: 'usage', additivity: true
然后使用
private static final log = LogFactory.getLog("usage")
似乎没有其他记录或描述的方式有效,理想情况下我可以在包或类的基础上对其进行配置,但这有效。