我正在开发一个grails应用程序,在开发模式下,我通过log4j将一些计算记录到日志文件中。
我想提供一个服务,它将读取日志文件并将其内容提供给开发人员,以便他们可以看到日志文件中记录的内容。
有没有办法在运行时获取log4j appender文件名?
答案 0 :(得分:5)
如果您的日志配置设置如下:
log4j = {
appenders {
file name: 'myFileAppender', file: '/tmp/myFile.log'
}
debug 'myFileAppender': 'myFileLogger'
}
您可以像这样访问myFileLogger
Logger的文件名:
import org.apache.log4j.Logger
import org.apache.log4j.FileAppender
def appender = (FileAppender)Logger.getLogger('myFileLogger').getAppender('myFileAppender')
def fileName = appender.file
答案 1 :(得分:3)
这将找到第一个appender的文件名:
import org.apache.log4j.*
Logger.rootLogger.allAppenders.find{it instanceof FileAppender}?.fileName