簡體   English   中英

grails log4j無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM