2017-06-12 3 views
0

Ich verwende Logback in meinem Projekt und es wird nicht in eine Datei protokolliert.Logback protokolliert nicht in Datei

Meine logback.xml sieht aus wie dieses

<property file="api.properties"/> 

<appender name="FILE-AUDIT" 
      class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>c:/debug.log</file> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <Pattern> 
      %d{yyyy-MM-dd HH:mm:ss} - %msg%n 
     </Pattern> 
    </encoder> 

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- rollover daily --> 
     <fileNamePattern>c:/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 

</appender> 

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <!-- encoders are assigned the type 
     ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern> 
    </encoder> 
</appender> 

<logger name="JDBC" level="INFO" additivity="false"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</logger> 
<logger name="RESTSecurity" level="INFO" additivity="false"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</logger> 
<logger name="models" level="INFO" additivity="false"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</logger> 

<!-- Strictly speaking, the level attribute is not necessary since --> 
<!-- the level of the root level is set to DEBUG by default.  --> 
<root level="DEBUG"> 
    <appender-ref ref="STDOUT" /> 
</root> 

und es ist in WEB-INF/classes gestellt.

Ich benutze diese Abhängigkeiten

<dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>${logback.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-core</artifactId> 
      <version>${logback.version}</version> 
     </dependency> 

Wenn ich meine App-Server auf WebLogic betreibe ich meine Log-Meldungen in der Konsole aber nicht Protokolldateien erstellen. Wer weiß, was könnte falsch sein?

EDIT: I versucht, beide

private static final Logger logger = LoggerFactory.getLogger("JDBC"); 

und

private static final Logger logger = LoggerFactory.getLogger(Roles.class); 

verwenden wie die Klasse in JDBC-Paket ist. Dann mache ich nur

logger.info("Initializing roles"); 

EDIT2: Da Protokollmeldungen i in der Konsole erhalten anders aussieht als von dem, was in logback.xml ist es sieht aus wie es meine logback.xml überhaupt nicht ignorieren.

+0

Bitte zeigen Sie Ihren Code, wie Sie verschiedene Logger in logback Konfiguration verwenden. – Rouliboy

+0

@Rouliboy Ich habe es in EDIT –

+0

hinzugefügt Versuchen Sie, Zeilenumbrüche und Leerzeichen zwischen ' c: /archived/debug.%d {JJJJ-MM-TT}.% I.log' und' 'zu entfernen . Sind Sie sicher, dass die Anwendung die Berechtigung zum Erstellen der entsprechenden Datei hat und das Verzeichnis "c:/archived" bereits existiert? – yeputons

Antwort

0

Das Problem muss von Weblogic kommen, die nicht SLF4J abholen nicht/Logback von Ihrem Klassenpfad.

Fügen Sie den folgenden prefer-application-packages auf Ihre weblogic.xml:

<prefer-application-packages> 
    <package-name>org.slf4j.*</package-name> 
    <package-name>ch.qos.logback.*</package-name> 
</prefer-application-packages> 
+0

Das hat es gelöst! Vielen Dank! –

0

Sie haben alle Appen in die Log-Ebene hinzuzufügen, wenn Sie DEBUG wollen die Schiedsrichter wie diese Datei zu protokollieren, fügen:

<root level="DEBUG"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</root> 
+0

Funktioniert nicht.Aber wie oben in den Kommentaren erwähnt, sieht es so aus, als ob meine Anwendung logback.xml überhaupt ignoriert, also ist es vielleicht kein Fehler in der XML-Datei. Ich habe den Beitrag aktualisiert, um es zu erwähnen. –

Verwandte Themen