使用Log4j在Grails中获取整个流日志

使用Log4j在Grails中获取整个流日志,grails,log4j,rollingfileappender,Grails,Log4j,Rollingfileappender,假设我有一个cron作业类SampleTestJob,它将通过调用utilService findAllAdmins方法来获取管理员列表。 在每个类中都添加了日志。 我需要将整个流程的日志打印到单独的日志文件中。 为此,我使用了使用TimeBasedRollingPolicy的RollingFileAppender,这样每天都可以创建一个zip备份。 在Config.groovy中,我列出了整个流的类名,例如SampleTestJob、UtilService。 执行SampleTestJob时,

假设我有一个cron作业类SampleTestJob,它将通过调用utilService findAllAdmins方法来获取管理员列表。 在每个类中都添加了日志。 我需要将整个流程的日志打印到单独的日志文件中。 为此,我使用了使用TimeBasedRollingPolicy的RollingFileAppender,这样每天都可以创建一个zip备份。 在Config.groovy中,我列出了整个流的类名,例如SampleTestJob、UtilService。 执行SampleTestJob时,SampleTestJob和UtilService的日志将打印到我的日志文件中。 我的问题是,我只想打印SampleTestJob的整个流程,是的,它会被打印出来。 但是当findAllAdmins在本例中被另一个类AdminController调用时,它也会打印在同一个日志文件中。 我该怎么阻止这一切?有没有更好的方法来实现这一点

另外,如果不将整个流程中的类列为
[“grails.app.jobs.SampleTestJob”,“grails.app.services.UtilService”]
,那么它可以识别所有日志并将其打印到日志文件中

class SampleTestJob{

def utilService

def execute() {
    log.info "Beginning SampleTestJob."
    List<Admin> adminList = utilService.findAllAdmins()//Calling the findAllAdmins of utilService.
    log.info "Finished SampleTestJob."

}
}

class UtilService{

def findAllAdmins() {
    log.info "Beginning findAllAdmins."
    //Implementation to get all the admins
    log.info "Finished findAllAdmins."
}
}

class AdminController{

def utilService

def listAdmins() {
    log.info "Beginning listAdmins."
    List<Admin> adminList = utilService.findAllAdmins()//Calling the findAllAdmins of utilService.
    log.info "Finished listAdmins."
}
}
log4j = {

def logDir = 'target' + '/logs'
def logPattern = '%d [%t] %-5p %c{2} %x - %m%n'

def jobRollingFile   = new RollingFileAppender(name: 'SampleLogs', layout: pattern(conversionPattern: logPattern))
def jobRollingPolicy = new TimeBasedRollingPolicy(fileNamePattern: "$logDir/Logs/Sample.%d{yyyy-MM-dd}.gz", activeFileName: "$logDir/Logs/Sample.log")
jobRollingPolicy.activateOptions()
jobRollingFile.setRollingPolicy jobRollingPolicy

appenders {
    appender jobRollingFile
}

info additivity: false, SampleLogs   : ["grails.app.jobs.SampleTest", "grails.app.services.UtilService"]

}