문제

log4J에는 logger.error ( "") 및 logger.debug ( "")가 다른 출력 레이아웃을 포함하는 방법이 있습니까?

메소드 이름과 줄 번호를 포함하는 오류가 필요합니다. 둘 다 응용 프로그램 성능이 느려집니다.

편집하다:

Apache-Log4J-Extras를 추가 한 후 다음 구성 파일이 작동합니다.

<?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>

이 코드는 테스트하는 데 사용되었습니다

// goes to errors.txt
     log.error("error");
//goes to warnings.txt
     log.warn("warn");
도움이 되었습니까?

해결책

log4j.xml 구성 내에서 각각 LevelMatchFilter 각각 별도의 패턴 출력.

다른 팁

나는 두 개의 다른 로거를 설정할 것입니다. 하나는 오류라고하고 하나는 디버그라고 불렀습니다. 그런 다음 다른 출력 레이아웃을 쉽게 설정하고 오류 또는 Debug.Debug를 호출 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top