log4j with grails:如何在运行时获取appender文件名?

The*_*cle 2 grails groovy log4j

我正在开发一个grails应用程序,在开发模式下,我通过log4j将一些计算记录到日志文件中.

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

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

Rob*_*ska 5

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

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

    debug 'myFileAppender': 'myFileLogger'
}
Run Code Online (Sandbox Code Playgroud)

您可以myFileLogger像这样访问Logger的文件名:

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

def appender = (FileAppender)Logger.getLogger('myFileLogger').getAppender('myFileAppender')
def fileName = appender.file
Run Code Online (Sandbox Code Playgroud)