2010-09-13 44 views
2

我正在开发Grails应用程序,在开发模式下,我通过log4j将一些计算记录到日志文件中。log4j与grails:如何在运行时获取appender文件名?

我想提供一个服务,它将读取日志文件并使其内容可供开发人员使用,以便他们可以查看日志文件中记录的内容。

有没有办法在运行时获得log4j appender文件名?

回答

5

如果你的日志记录配置设置如下:

log4j = { 
    appenders { 
     file name: 'myFileAppender', file: '/tmp/myFile.log' 
    } 

    debug 'myFileAppender': 'myFileLogger' 
} 

您可以访问myFileLogger记录器的文件名是这样的:

import org.apache.log4j.Logger 
import org.apache.log4j.FileAppender 

def appender = (FileAppender)Logger.getLogger('myFileLogger').getAppender('myFileAppender') 
def fileName = appender.file 
+0

优秀。感谢Rob。 – 2010-09-15 15:40:26

3

这将找到的第一个附加器的文件名:

import org.apache.log4j.* 

Logger.rootLogger.allAppenders.find{it instanceof FileAppender}?.fileName 
+0

我会试试看。谢谢ataylor。 – 2010-09-15 15:40:57