2017-04-26 7 views
0

私はgrailsで新しく、アプリケーション用のloggindを設定する必要があります。私は自分のGrailsアプリケーションでのlog4jを設定するために始めたと私は、このエラーは、以下で説明だと、私はこれを作るのか分からない:log4j grailの設定

log4j:ERROR Property missing when configuring log4j: Environment 

誰かがそれを原因知っていますか?以下は私のコードです!

def myappLogLevel = "DEBUG" 
def myappLogPattern = "%d{yyyy-MM-dd/HH:mm:ss.SSS} [%t] %x %-5p %c{2} - 
%m%n" 
def log4jFileName = System.properties.getProperty('catalina.base', '.') + 
"/logs/myapp.log" 

environments { 
    development { 
     log4jFileName = "logs/myapp.log" 
    } 
test { 
    log4jFileName = "logs/myapp.log" 
} 


log4j = { 

def logLayoutPattern = new PatternLayout(myappLogPattern) 

appenders { 
    appender new DailyRollingFileAppender(name: "myappLog", 
      threshold: Level.toLevel(myappLogLevel), 
      file: log4jFileName, 
      datePattern: "'.'yyyy-MM-dd", //Rollover at midnight each day. 
      layout: logLayoutPattern 
    ) 
    if (Environment.current == Environment.DEVELOPMENT || 
      Environment.current == Environment.TEST) { 
     appender new ConsoleAppender(name: "console", 
       threshold: Level.toLevel(myappLogLevel), 
       layout: logLayoutPattern 
     ) 
    } 
} 
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 
     'org.springframework', 
     'org.hibernate.cache', 
     'org.hibernate', 
     'net.sf.ehcache.hibernate' 
'grails' 
'groovyx.net.http' 

warn 'org.springframework', 
     'org.hibernate', 
     'grails.plugins.springsecurity', 
     'groovyx.net.http' 

debug 'grails.plugins.springsecurity', 
     'grails.plugin.springcache', 
     'com.myapp', 
     'org.codehaus.groovy.grails.plugins.springsecurity', 
     'org.apache.http.headers', 
     'grails.app.services', 
     'grails.app.domain', 
     'grails.app.controllers', 
     'grails.plugin.databasemigration', 
     'liquibase' 

    List<String> loggers = [] 
    loggers.add('myappLog') 
    if (Environment.current.name == "development" || 
     Environment.current.name == "test") { 
      loggers.add('console') 
    } 
    root { 
     error loggers as String[] 
     additivity = true 
    } 

} 
+0

環境を利用できるようにするには、grails.util.Environmentをインポートする必要があります。 – railsdog

答えて

0

明示的に環境にアクセスしなくても、ログconfig DSL構築を使用して環境に分岐することができます。

私はあなたが他の構成で達成しようとしているので、物事を処理するために、よりエレガントな方法があるかもしれないものを確認していない、と述べた
environments { 
    development { loggers.add('console') } 
    test { loggers.add('console') } 
} 

関連する問題