2011-01-18 11 views
2

私はこれについて非常に不満を抱いています。Grails log4J linuxのログ記録

私は、次の操作を実行しようとしています:

  • ログインINFOまたはcatalina.out
  • ログの設定は唯一WARN制御するもので理解
  • の上にあるapplication.logでのすべてのアプリケーション関連のログto catalony.out

私はubuntuでサーバを稼働させていますが、confディレクトリにlogging.propertiesを含むデフォルトの設定があります。このファイルの名前をl.pに変更して、競合しないようにしました。

(これは良いアイデアですかどうかわからないが)私の設定ファイルでは、私が持っている:

catalina.2011-01-17.log catalina.out localhost.2011-01-17.log 

catalina.out:

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

} 

その結果、私は3つのログを取得しています

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が表示されません。私はこれについて本当に不満を抱いています。

もう一つは、窓にはすべてがコンソールに出てくるとapplication.logでは

答えて

4

あなたの問題は、型の不一致があることは明らかである.grails\1.3.5\projects\<appnmae>\tomcatディレクトリに作成されます。具体的には、log4jはGStringを与えるときにStringを期待しています。交換してみてください:

"${logDirectory}${File.separator}application.log" 

をこれに伴い:

"${logDirectory}${File.separator}application.log".toString() 

EDITを:私は2つの問題があったthis BUG

+0

お読みください:1)私はのtoStringを(必要な)2)wasn lpへlogging.propertiesを変更十分だ。 confディレクトリから移動する必要がありました。ありがとう@Mikke Axiak – Tihom

+0

Mike(とThom)、私はGrails 1.3.7でこれをテストしました。明示的な '.toString()'呼び出しがなければうまくいくようです。私はそのバグを解決しました。 –

関連する問題