Я не могу настроить ведение журнала grails log4j для работы в Tomcat6. Я раньше думал , что проблема связана с производственным режимом, но теперь я считаю, что проблема в том, что это кот.
У меня есть конфигурация log4j в моем Config.groovy, которая правильно устанавливает ведение журнала, когда я запускаю приложение в STS. Я использую замечательный плагин app-info, который подтверждает, что устанавливаются правильные значения ведения журнала.
Однако, когда я выполняю grails war
или даже grails dev war
с тем же кодом и вставляю его в папку webapps в Tomcat, журналирование не происходит. Когда я сейчас просматриваю информацию о приложении для ведения журнала, я получаю базовый файл log4j.xml, который ничего не собирает внутри моей конфигурации. Кроме того, когда я смотрю на catalina.out, я вижу:
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
Для полноты, вот конфигурация, которая правильно работает в STS, но не при запуске непосредственно в Tomcat:
log4j = {
String logDirectory = "${System.getProperty('catalina.base') ?: '.'}/logs"
appenders {
console name: "stdout", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
file name: "errors", file: "pps-errors.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
appender new org.apache.log4j.DailyRollingFileAppender(name:"roll", datePattern: "'.'yyyy-MM-dd", file:"pps-rolling.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"))
}
root { info "stdout", "roll", "errors" }
// Log all at the error level
info 'org.apache.',
'org.tomcat.',
'grails.app',
'org.acegisecurity',
'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages', // GSP
'org.codehaus.groovy.grails.web.sitemesh', // layouts
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate'
warn 'grails.app'
}
Вот вывод журнала информации о приложении, когда это выполняется в STS:
Вот вывод журнала информации о приложении при запуске непосредственно в tomcat6:
Я использую Grails 1.3.7, если это полезно.