Frage

Gibt es in LOG4J eine Möglichkeit, logger.Eror ("") und logger.debug ("") verschiedene Ausgaberien enthalten?

Ich möchte, dass Fehler Methodennamen und Zeilennummern enthalten, die beide die Anwendungsleistung verlangsamen.

BEARBEITEN:

Nach dem Hinzufügen von Apache-Log4J-Extras funktioniert die folgende Konfigurationsdatei.

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="WARNINGS" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="warnings.log"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss} %-5p %c - %m%n%n"/>
        </layout>
        <filter class="org.apache.log4j.filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG"/>
            <param name="LevelMax" value="WARN"/>
        </filter>
    </appender>

    <appender name="ERRORS" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="errors.log"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <!-- %M for method name , %L for line number  -->
            <param name="ConversionPattern" value="%d{yyyy-MMM-dd HH:mm:ss} %-5p %c %M %L - %m%n%n"/>
        </layout>
        <filter class="org.apache.log4j.filter.LevelRangeFilter">
            <param name="LevelMin" value="ERROR"/>
            <param name="LevelMax" value="FATAL"/>
        </filter>
    </appender>

    <logger name="com.foo.bar">
        <appender-ref ref="WARNINGS"/>
        <appender-ref ref="ERRORS"/>
    </logger>

</log4j:configuration>

Dieser Code wurde zum Testen verwendet

// goes to errors.txt
     log.error("error");
//goes to warnings.txt
     log.warn("warn");
War es hilfreich?

Lösung

In Ihrer log4j.xml -Konfiguration können Sie zwei Appender erstellen, die jeweils mit a LevelMatchFilter und jeder mit einem separaten Musterausgang.

Andere Tipps

Ich würde einfach zwei verschiedene Holzfäller einrichten. Einer namens Fehler und einer namens Debug. Anschließend können Sie einfach verschiedene Ausgabelayouts einrichten und nur aufrufen. ERROR oder DEBUG.DEBUG.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top