[英]grails log4j not working
我正在使用grails,並按如下所示將我的lo4j conf定向到/var/log/eccount/dataSearch.log
路徑,並添加了要登錄到info
級別的package( com.eccount.trending
),
log4j = {
// Example of changing the log pattern for the default console
// appender:
//
appenders {
rollingFile name: 'dataSearch', maxFileSize: 1024, file: '/var/log/eccount/dataSearch.log', layout: pattern(conversionPattern: "%d{HH:mm:ss} %C %m%n")
}
info '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',
'com.eccount.trending'
warn 'org.mortbay.log'
root {
info 'dataSearch'
//additivity = true
}
}
現在,在位於src/java/
Java類中,我使用了org.sl4j.Logger
,如下所示
org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("dataSearch");
// code flows here
logger.info("elasticSearchsBuilder", elasticSearchsBuilder);
但是在應用程序運行之后,在/var/log/eccount/dataSearch.log
我什么也看不到。 它具有以下訪問權限,
$ ls -l /var/log/eccount/
total 0
-rw-r--r-- 1 prayag prayag 0 Oct 25 12:59 dataSearch.log
錯誤級別適用於控制台(但無法寫入文件)。
您會混淆記錄器和附加器。 您已經在DSL中聲明了一個名為dataSearch
的附加程序,但尚未將其附加到任何記錄器,因此消息都將發送到默認的stdout
附加程序。 而且您的代碼要求的是一個尚未配置的名為dataSearch
的記錄器 。
如果您只想將com.eccount.trending
消息發送到此附加程序,而將其他所有內容保留在默認stdout中,則應該添加新行,而不是將com.eccount.trending
添加到現有info
行中
info dataSearch:['com.eccount.trending'], additivity:false
如果您希望所有內容都登錄到該文件而不是stdout,則添加
root {
error 'dataSearch'
}
在這兩種情況下,您都需要更改代碼以執行getLogger("com.eccount.trending")
而不是getLogger("dataSearch")
請注意,如果您使用root
方法,並在現有info
行中保留com.eccount.trending
,則您當前的配置存在語法錯誤-您缺少逗號,應該是
'net.sf.ehcache.hibernate',
'com.eccount.trending'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.