2011-11-07 55 views
5

我想在我的logback的Grails應用程序來取代log4j的,但運行運行的應用程序測試應用時,我總是得到一個的Grails:用的logback

Embedded error: java.lang.reflect.InvocationTargetException 
org.apache.log4j.LogManager 

更換log4j的。

我已經包含在BuildConfig.groovy,我認爲以下就足夠了:

inherits("global") { 
    excludes "slf4j-log4j12" 
} 

[...] 

dependencies { 
    build 'ch.qos.logback:logback-core:0.9.29', 'ch.qos.logback:logback-classic:0.9.29' 
    runtime 'ch.qos.logback:logback-core:0.9.29', 'ch.qos.logback:logback-classic:0.9.29' 
} 

我無法找到任何Log4J的更多的參考和不知道在哪裏這個調用來自?

我也在努力取代的Grails通過1.6.2 SLF 1.5.8並獲得在控制檯下面儘管所有的Grails模塊已經排除SLF:

SLF4J: The requested version 1.6 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8] 
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details. 

預先感謝任何幫助

問候

喬納斯

回答

3

的logback 0.9.21及以上依賴於SLF4J-API 1.6這是什麼錯誤是告訴你。使用Grails 2.1.0當1.6

3

BuildConfig.groovy工作對我來說:

inherits("global") { 
    excludes 'grails-plugin-log4j'   
} 

[...]

添加依存關係org.slf4j:SLF4J的API

dependencies {  
    compile 'ch.qos.logback:logback-classic:1.0.6' 
    runtime 'ch.qos.logback:logback-classic:1.0.6' 
} 

[...]

this.classLoader.rootLoader.addURL(new File("${basedir}/grails-app/conf/").toURI().toURL()) 

如果您想在此設置您的配置,最後一行使Grails正確地讀取grails-app/conf/logback.groovy

+0

剔除'的Grails,插件,log4j'是關鍵 – fglez

+0

'Logback.groovy'不會從戰爭中運行時,它被編譯到的logback工作。類和Logback查找源代碼 – fglez

0

我使用了logback 1.0.6。它沒有工作。但我用另一種方式。設置環境變量「logback.configurationFile = {常規文件地址}」。例如:

grails run-app -Dlogback.configurationFile=c:\log\logback.groovy 

您可以在tomcat或其他任何其他將war文件放入其中的參數中使用該參數。

它適用於我。

0

這可能對他人有所幫助:

指定配置Config.groovy中

logback = { 
    appenders { 
     console name: 'stdout', encoder: pattern(pattern: "%d{dd-MMM-yyyy HH:mm:ss} %-5p %c - %m%n") 

     rollingFile(
       name: 'fileAppender', 
       file: logFileName, 
       encoder: pattern(pattern: "%d{dd-MMM-yyyy HH:mm:ss} %-5p %c - %m%n"), 
       triggeringPolicy: new SizeBasedTriggeringPolicy(maxFileSize: 10*1024*1024), // Max is 10 MB log files 
       rollingPolicy: new FixedWindowRollingPolicy(fileNamePattern: iLogFileName) 
     ) 
    } 

    error fileAppender: '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' 

    info fileAppender: 'org.springframework.web.client', 
      'com.yourpackage', 
      'com.linkedin.grails' 


    debug fileAppender: 'com.yourpackage', // Set debug level for non-grails artifacts, e.g. src/groovy, under the com.yourpackage.package 
      'grails.app' // Set debug level for all application artifacts 

    trace fileAppender: 'org.springframework.web.client', 
      'org.springframework.social', 
      'com.yourpackage' 

    root { 
     info 'stdout', 'fileAppender' 
    } 
} 
  • 附上的logback插件和排除要求包:
  • 在BuildConfig.groovy

    inherits("global") { 
         excludes 'grails-plugin-log4j', 'log4j' //using logback as grails-log4j have serialization issues with spark libraries 
        } 
    

    內部依賴關係:包括編譯 'org.grails.plugins:的logback:0.3.1'

    1. 禁用叉模式執行。它不會與logback一起使用。

    2. 上述配置僅適用於WAR模式。

    3. 如果您甚至想要在正常的本地開發模式下控制日誌記錄,請在您的conf目錄中包含一個logback.xml文件。

    logback.xml:

    <?xml version="1.0" encoding="UTF-8" ?> 
    
    <configuration> 
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
         <encoder> 
          <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
         </encoder> 
        </appender> 
    
        <root level="warn"> 
         <appender-ref ref="STDOUT"/> 
        </root> 
        <shutdownHook/> 
    </configuration>