2
我一直非常沮喪。Grails log4J在linux上的日誌記錄問題
我努力做到以下幾點:在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一切出來到控制檯,並在.grails\1.3.5\projects\<appnmae>\tomcat
目錄
我有兩個問題:1)我需要一個toString()2)改變logging.properties到lp WASN夠了。我需要將其移出conf目錄。謝謝@Mike Axiak – Tihom
Mike(和Thom),我已經用Grails 1.3.7測試過了,並且它沒有顯式的'.toString()'調用就可以正常工作。因此我解決了這個錯誤。 –