我对此感到非常沮丧。
我正在尝试执行以下操作:
- 在 application.log 中记录 INFO 或以上的所有应用程序相关日志
- 了解控制 catalina.out 配置的因素
- 仅将 WARN 记录到 catalina.out
我在 ubuntu 上运行我的服务器,并且我有 tomcat 的默认配置,其中包括一个带有 logging.properties
的 conf 目录。 。我将此文件重命名为 l.p,这样就不会发生冲突。 (不确定这是否是个好主意)
在我的配置文件中,我有:
def catalinaBase = System.properties.getProperty('catalina.base')
if (!catalinaBase) catalinaBase = '.' // just in case
def logDirectory = "${catalinaBase}${File.separator}logs"
println "Log Directory: ${logDirectory}"
log4j = {
appenders {
rollingFile name: 'applog', file: "${logDirectory}${File.separator}application.log", layout: pattern(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n'), maxFileSize: 1024
}
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',
'net.sf.ehcache.hibernate'
warn 'org.mortbay.log'
info applog: 'grails.app'
root {
info 'applog'
}
}
结果,我得到了三个日志:
catalina.2011-01-17.log catalina.out localhost.2011-01-17.log
catalina.out 具有以下输出:
Log Directory: /var/lib/tomcat6/logs
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.PropertyUtils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
log4j:ERROR WARNING: Exception occured configuring log4j logging: Cannot invoke org.apache.log4j.FileAppender.setFile - argument type mismatch
我没有看到 application.log
在日志文件目录中。任何帮助将不胜感激,我对此感到非常沮丧。
还有一件事,在 Windows 中,所有内容都输出到控制台,并且 application.log 是在 .grails\1.3.5\projects\<appnmae>\tomcat
中创建的。目录
最佳答案
你的问题显然是类型不匹配。具体来说,当您向 log4j 提供 GString 时,它需要一个 String。尝试替换:
"${logDirectory}${File.separator}application.log"
这样:
"${logDirectory}${File.separator}application.log".toString()
编辑:请阅读this BUG
关于linux - Linux 上的 Grails log4J 日志记录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4724494/