2016-05-25 9 views
1

Ich benutze Hibernate 3.1.3 und Logback (Classic + Core) 1.1.7.Hibernate + Logback, nicht einloggen Datei

Hier sind meine logback.xml

<appender name="hibernate-sql" 
     class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>logs/hibernate-sql.log</file> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern> 
    </encoder> 

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
     <FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern> 
     <MinIndex>1</MinIndex> 
     <MaxIndex>10</MaxIndex> 
    </rollingPolicy> 

    <triggeringPolicy 
    class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
     <MaxFileSize>2MB</MaxFileSize> 
    </triggeringPolicy> 

</appender> 

    <logger name="org.hibernate.hql"> 
    <level value="TRACE"/> 
    <appender-ref ref="hibernate-sql"/> 
    </logger> 

    <logger name="org.hibernate.SQL"> 
    <level value="TRACE"/> 
    <appender-ref ref="hibernate-sql"/> 
    </logger> 

    <root level="TRACE"> 
    <!--<appender-ref ref="FILE"/>--> 
    <!--<appender-ref ref="STDOUT"/>--> 
    </root> 

ich SQL in meiner IDE Konsole angemeldet bekommen (wegen hibernate.show_sql = true), aber nicht in logs/Hibernate-Sql.log. Die Datei ist gut erstellt, bleibt aber leer.

Hier sind die Debug-Informationen über logback:

12:34:43,301 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 
12:34:43,301 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 
12:34:43,301 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/******/logback.xml] 
12:34:43,535 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 
12:34:43,543 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [hibernate-sql] 
12:34:43,668 |-INFO in [email protected] - Will use zip compression 
12:34:43,678 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[hibernate-sql] - Active log file name: logs/hibernate-sql.log 
12:34:43,679 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[hibernate-sql] - File property is set to [logs/hibernate-sql.log] 
12:34:43,684 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.hibernate.hql level set to TRACE 
12:34:43,684 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [hibernate-sql] to Logger[org.hibernate.hql] 
12:34:43,685 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.hibernate.SQL level set to TRACE 
12:34:43,685 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [hibernate-sql] to Logger[org.hibernate.SQL] 
12:34:43,686 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to TRACE 
12:34:43,686 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 
12:34:43,687 |-INFO in [email protected] - Registering current configuration as safe fallback point 

Warum ist es in der Konsole anmelden, aber nicht in meiner Datei, auch wenn es gut die Datei erstellt? Vielen Dank.

Antwort

0

Versuchen Sie debug="true" zu Ihrer logback.xml-Datei hinzuzufügen, wie beschrieben here. Es hilft Ihnen zu verstehen, wie Ihre Protokollierung wirklich konfiguriert ist.

+0

Ich füge Debug hinzu und füge das Log über Logback im ursprünglichen Beitrag hinzu – Jon

0

Ihr appender Name nicht korrekt ist

<appender-ref ref="FILE"/> 

Es <appender-ref ref="hibernate-sql"/>

0

sein sollte ich habe einige Teile Ihrer ursprünglichen Code zu ändern, auf diese Weise:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration scan="true" scanPeriod="30 seconds"> 
    <appender name="hibernate-sql" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>.../logs/hibernate-sql.log</file> <!-- Here i add the full path to log file --> 
     <encoder> 
     <Pattern>%green(%d) %highlight(%-5level) %cyan(%logger{0}) mdc=%X{id} %msg %n</Pattern> 
     </encoder> 
     <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
     <FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern> 
     <MinIndex>1</MinIndex> 
     <MaxIndex>10</MaxIndex> 
     </rollingPolicy> 
     <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
     <MaxFileSize>2MB</MaxFileSize> 
     </triggeringPolicy> 
    </appender> 
    <appender name="SERVER" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file></file> <!-- Full path to log file --> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- rollover daily --> 
     <FileNamePattern></FileNamePattern> 
     </rollingPolicy> 
     <encoder> 
     <Pattern>%green(%d) %highlight(%-5level) %cyan(%logger{0}) mdc=%X{id} %msg %n</Pattern> 
     </encoder> 
    </appender> 
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
     <FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern> 
     <MinIndex>1</MinIndex> 
     <MaxIndex>10</MaxIndex> 
    </rollingPolicy> 
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
     <MaxFileSize>2MB</MaxFileSize> 
    </triggeringPolicy> 
    <logger name="org.hibernate" level="INFO"> <!-- Here i changed your block --> 
     <appender-ref ref="hibernate-sql" /> 
    </logger> 
    <root level="INFO"> 
     <appender-ref ref="SERVER" /> 
    </root> 
</configuration> 

Grundsätzlich i hinzufügen Vollständiger Pfad zur Protokollierung und Änderung der 'Hibernate-SQL'-Konfiguration. Sie können versuchen, um Ihren Fall

+0

Bereits versucht. Funktioniert nicht. – Jon

+0

@Jon Ändern Sie die erste Zeile: zu: und ausschließen: logs/hibernate-sql.log

+0

@Julios Dias: Dadurch bekomme ich eine java.lang.IllegalStateException: Die Option "Datei" muss eingestellt sein – Jon

0

Hier ist meine Lösung anzupassen ist:

Um die Protokolle mit Logback 1.1.7 und Hibernate 3.1.3 zu bekommen, brauchen wir:

  1. slf4j-api 1.7.5
  2. jul-to-slf4j 1.7.6
  3. jul-over-slf4j 1.7.6

O Die anderen Versionen funktionieren vielleicht auch, aber das Wichtigste ist die Abhängigkeit jul-over-slf4j.