2013-10-31 50 views
0

我使用Grails和有我lo4j的conf如下指向路徑/var/log/eccount/dataSearch.log並添加包(com.eccount.trending)我想登錄到info水平,Grails的log4j的工作不

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 
    } 
} 

現在,在位於我的Java類在src/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 

錯誤級別工作控制檯(但不能寫入文件)。

回答

0

你很混亂記錄員和appenders。你已經在你的DSL中聲明瞭一個名爲dataSearch的appender,但是你沒有將它附加到任何記錄器,所以這些消息都將轉到默認的stdout appender。並且您的代碼需要記錄器,稱爲dataSearch,您尚未配置該記錄器。

如果你想只是com.eccount.trending消息發送到該附加目的地,但留下一切在默認的標準輸出的則不是增加com.eccount.trending現有info行,你應該添加一個新行

info dataSearch:['com.eccount.trending'], additivity:false 

如果您想一切登錄到該文件,而不是標準輸出再加入

root { 
    error 'dataSearch' 
} 

在您需要更改您的代碼d兩種情況鄰getLogger("com.eccount.trending")代替getLogger("dataSearch")

請注意,如果你去與root方法,並在現有的info線離開com.eccount.trending那麼你的當前配置有語法錯誤 - 你缺少一個逗號,應該是

 'net.sf.ehcache.hibernate', 
     'com.eccount.trending' 
+0

我加了'root {info'dataSearch'}',然後把getLogger改成了getLogger('com.eccount.trending')'。沒有工作。再一次,我試着用'getLogger('com.eccount.trending')''data dataSearch:['com.eccount.trending'],addability:false'。沒有工作 – prayagupd

+0

@PrayagUpd我只注意到你在配置中缺少一個逗號,這有幫助嗎? –

+0

我正在用'root'方法。但是加'''無法幫助。 – prayagupd