Получить журналы каждого задания Grails Cron в отдельный файл

Я использую версию Grails 2.2.4 с log4j. У меня 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 и UtilService только при выполнении SampleTestOneJob.

Как я могу получить логи SampleTestTwoJob и UtilService только при выполнении SampleTestTwoJob.

Прямо сейчас, используя RollingFileAppender, я сделал это. Но проблема в том, что SampleTestOneJob и SampleTestTwoJob выполняются. Так как оба вызывают findAllAdmins в UtilService. Журналы при вызове из 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"]

}

0 ответов

Другие вопросы по тегам