Grails - Kein Logging In Tomcat

Ich kann nicht grails-log4j-Protokollierung auf die Arbeit in Tomcat6. Ich bisher dachte das problem hatte zu tun mit der Produktion-Modus, aber jetzt glaube ich das Problem ist tomcat.

Habe ich eine log4j-Konfiguration in meiner Config.groovy, die richtig setzt die Protokollierung, wenn ich die Anwendung laufen STS. Ich bin mit der wunderbaren app-info-plugin, welches bestätigt, dass die ordnungsgemäße Protokollierung Werte werden gesetzt.

Jedoch, wenn ich eine grails war oder sogar ein grails dev war mit dem gleichen code, und stecken Sie es in den webapps Ordner in Tomcat, keine Anmeldung passiert. Wenn ich einen Blick in die app-info für die Protokollierung nun bekomme ich eine grundlegende log4j.xml die Abholung nichts in meiner Konfiguration. Auch wenn ich mit Blick auf catalina.aus, sehe ich:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.

Vollständigkeit halber, hier ist die config, die funktioniert in STS, aber nicht bei der Ausführung im Tomcat direkt:

log4j = {
    String logDirectory = "${System.getProperty('catalina.base') ?: '.'}/logs"

    appenders {
        console name: "stdout", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
        file name: "errors", file: "pps-errors.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
        appender new org.apache.log4j.DailyRollingFileAppender(name:"roll", datePattern: "'.'yyyy-MM-dd", file:"pps-rolling.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"))
    }


    root { info "stdout", "roll", "errors" }
    //Log all at the error level
    info 'org.apache.',
    'org.tomcat.',
    'grails.app',
    'org.acegisecurity',
    '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'
    warn 'grails.app'
}

Hier ist die app-info logging-Ausgabe, wenn dieses im STS:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
   <appender name="stacktraceLog" class="org.apache.log4j.FileAppender">
      <param name="file" value="/home/devon/Documents/SynaSync/Projects/ProjectPointSpread/Source/trunk/target/stacktrace.log"/>
      <param name="name" value="stacktraceLog"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="conversionPattern" value="%d [%t] %-5p %c{2} %x - %m%n"/>
      </layout>
   </appender>
   <appender name="roll" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="file" value="pps-rolling.log"/>
      <param name="name" value="roll"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="conversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"/>
      </layout>
   </appender>
   <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
      <param name="name" value="stdout"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="conversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"/>
      </layout>
   </appender>
   <appender name="errors" class="org.apache.log4j.FileAppender">
      <param name="file" value="pps-errors.log"/>
      <param name="name" value="errors"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="conversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"/>
      </layout>
   </appender>
   <logger name="StackTrace" additivity="false">
      <appender-ref ref="stacktraceLog"/>
   </logger>
   <logger name="grails.app">
      <level value="WARN"/>
   </logger>
   <logger name="org.acegisecurity">
      <level value="INFO"/>
   </logger>
   <logger name="org.apache.">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.commons">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.orm.hibernate">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.plugins">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.web.mapping">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.web.mapping.filter">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.web.pages">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.web.servlet">
      <level value="INFO"/>
   </logger>
   <logger name="org.codehaus.groovy.grails.web.sitemesh">
      <level value="INFO"/>
   </logger>
   <logger name="org.hibernate">
      <level value="INFO"/>
   </logger>
   <logger name="org.springframework">
      <level value="INFO"/>
   </logger>
   <logger name="org.tomcat.">
      <level value="INFO"/>
   </logger>
   <root>
      <level value="INFO"/>
      <appender-ref ref="stdout"/>
      <appender-ref ref="roll"/>
      <appender-ref ref="errors"/>
   </root>
</log4j:configuration>

Hier ist die app-info logging-Ausgabe, wenn Sie direkt in tomcat6:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
   <logger name="Test">
      <level value="ALL"/>
   </logger>
   <root>
      <level value="DEBUG"/>
   </root>
</log4j:configuration>

Ich bin mit Grails 1.3.7 wenn das hilfreich ist.

  • haben u gefunden eine Lösung für das?! neugierig auf Sie!
  • Neves - noch Nicht 🙁
  • Ich nur machen Sie den gleichen test hier in meinem tomcat 6.0.32 und ich bin immer die gleiche log4j-Ausgabe von run-app! Kann u simulieren das gleiche in einem leeren/neuen Projekt? oder ist dies nur geschieht es in Ihrem Projekt?!
  • Neves - AHHH! Ich habe die Dateien auf einer Standard-app. Wie könnte meine app variieren in signifikanter Weise, so dass es nicht funktionieren würde??
InformationsquelleAutor skaz | 2011-07-22
Schreibe einen Kommentar