Мне настроили log4j DSL правильно в моем Config.groovy в чаши Грааля applicaiton. Запуск приложения с приложением выполнения чаш Грааля выводит идеальный вход, когда я указал в DSL. Однако после выполнения войны чаш Грааля для генерации военного файла и развертывания его коту, регистрируясь просто исчезает. Я не вижу, что он работает где угодно, кроме консольного показа кота миллионы операторов журнала на уровне отладки и ничем идущем характерный для моего вхождения в файлы журнала.
log4j = {
appenders {
appender new org.apache.log4j.DailyRollingFileAppender(name: "tomcatLog", datePattern: "'.'yyyy-MM-dd", file: "${logDirectory}/snm.log".toString(), layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n'))
}
root {
info 'stdout', 'tomcatLog'
additivity = true
}
info 'grails.app',
'grails.app.controller',
'grails.app.bootstrap',
'grails.app.service',
'grails.app.task',
'commons',
'jsontwitter'
}
Можно ли объяснить вышеупомянутое DSL? Это отправляет свободное городское население.* и jsontwitter.* журналы классов к обозначенному файлу журнала, но никакому контроллеру, сервисный журнал сохраняется в файле.
Спасибо, Alam Sher
Вам нужно выяснить, какой каталог журналов использует tomcat. Это делается с помощью следующего фрагмента файла grails-app / conf / Config.groovy:
def catalinaBase = System.properties.getProperty('catalina.base')
if (!catalinaBase) catalinaBase = '.' // just in case
def logDirectory = "${catalinaBase}/logs"
// default for all environments
log4j = { root ->
appenders {
rollingFile name:'stdout', file:"${logDirectory}/${appName}.log".toString(), maxFileSize:'100KB'
rollingFile name:'stacktrace', file:"${logDirectory}/${appName}_stack.log".toString(), maxFileSize:'100KB'
}
error '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'
root.level = org.apache.log4j.Level.WARN
}
// special settings with production env
environments {
development {
log4j = { root ->
appenders {
console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
}
warn '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'
debug 'com.netjay'
root.level = org.apache.log4j.Level.INFO
}
}
}
Также есть ошибка на jira : http://jira.codehaus.org/browse/GRAILS-5666 : Run-war имеет некоторые конфликты classpath.
Marc Palmer говорит :logging убивается в приложениях, использующих плагины, которые определяют deps, наследующие "global"