log4jでgrails 2.2.4バージョンを使用しています。15 の cron ジョブを異なる時間に実行し、いくつかは同時に実行しています。各ジョブのログを個別のログ ファイルに取得する必要があります。
ジョブが実行されるとき、フロー全体のログを取得する必要があります。
例
class SampleTestOneJob{
def utilService
def execute() {
log.info "Beginning SampleTestOneJob."
List<Admin> adminList = utilService.findAllAdmins()//Calling the
findAllAdmins of utilService.
log.info "Finished SampleTestOneJob."
}
}
class UtilService{
def findAllAdmins() {
log.info "Beginning findAllAdmins."
//Implementation to get all the admins
log.info "Finished findAllAdmins."
}
}
class SampleTestTwoJob{
def utilService
def execute() {
log.info "Beginning SampleTestTwoJob."
//Refreshing logic
//Calling the findAllAdmins of utilService.
List<Admin> adminList = utilService.findAllAdmins()
log.info "Finished SampleTestTwoJob."
}
}
SampleTestOneJob が実行されたときのみ、SampleTestOneJob と UtilService のログを取得するにはどうすればよいですか。
SampleTestTwoJob が実行されたときのみ、SampleTestTwoJob と UtilService のログを取得するにはどうすればよいですか。
現在、RollingFileAppender を使用してそれを実行しました。しかし、問題は SampleTestOneJob と SampleTestTwoJob が実行されるときです。どちらも UtilService で findAllAdmins を呼び出しているためです。SampleTestOneJob から findAllAdmins を呼び出したときのログは SampleTestTwoJob で使用でき、SampleTestTwoJob から findAllAdmins を呼び出したときのログは SampleTestOneJob で使用できます。
フローを識別し、フロー ログをファイルに追加する方法はありますか。
Config.groovy
log4j = {
def logDir = 'target' + '/logs'
def logPattern = '%d [%t] %-5p %c{2} %x - %m%n'
def jobRollingFile1 = new RollingFileAppender(name: 'SampleOneLogs', layout: pattern(conversionPattern: logPattern))
def jobRollingPolicy1 = new TimeBasedRollingPolicy(fileNamePattern: "$logDir/Logs/Sample1.%d{yyyy-MM-dd}.gz", activeFileName: "$logDir/Logs/Sample1.log")
jobRollingPolicy1.activateOptions()
jobRollingFile1.setRollingPolicy jobRollingPolicy1
def jobRollingFile2 = new RollingFileAppender(name: 'SampleTwoLogs', layout: pattern(conversionPattern: logPattern))
def jobRollingPolicy2 = new TimeBasedRollingPolicy(fileNamePattern: "$logDir/Logs/Sample2.%d{yyyy-MM-dd}.gz", activeFileName: "$logDir/Logs/Sample2.log")
jobRollingPolicy2.activateOptions()
jobRollingFile2.setRollingPolicy jobRollingPolicy2
appenders {
appender jobRollingFile1
appender jobRollingFile2
}
info additivity: false, SampleOneLogs : ["grails.app.jobs.SampleTestOneJob", "grails.app.services.UtilService"]
info additivity: false, SampleTwoLogs : ["grails.app.jobs.SampleTestTwoJob", "grails.app.services.UtilService"]
}