로그 기록을 수행하기 위해 logback/slf4j를 사용하고 있습니다. 내 로그 파일을 분석하여 일부 데이터를 분석하고 싶기 때문에 큰 파일 (주로 디버그 문으로 구성)을 구문 분석하는 대신 각 파일을 별도의 파일에 기록하는 두 개의 로거 인스턴스를 갖고 싶습니다. 하나는 분석 용이고 다른 하나는 모든 용도 로깅 용입니다. Logback이나 다른 Logger로 가능하다면 누구나 알고 있습니까?다른 메시지를 두 개의 파일로 기록하는 로그백
108
A
답변
223
로그백에서 이와 같은 작업을 수행 할 수 있습니다. 다음은 예제 구성입니다 : 다음
<?xml version="1.0"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logfile.log</file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<appender name="ANALYTICS-FILE" class="ch.qos.logback.core.FileAppender">
<file>analytics.log</file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<!-- additivity=false ensures analytics data only goes to the analytics log -->
<logger name="analytics" level="DEBUG" additivity="false">
<appender-ref ref="ANALYTICS-FILE"/>
</logger>
<root>
<appender-ref ref="FILE"/>
</root>
</configuration>
당신이 설정했던 두 개의 별도의 로거, 모두를위한 하나 하나가과 같이 분석 데이터를 기록 할 수 :
내 경우에는Logger analytics = LoggerFactory.getLogger("analytics");
1
내가 같은 클래스 이름을두고 싶었다 이름
private static final Logger log = LoggerFactory.getLogger(ScheduledPost.class);
를 기록하고 나는 몇 등의 수업을했다, 그래서 내 logbook.xml
1
원하는만큼 로거를 가질 수 있습니다. 그러나 각 패키지별로 하나씩 다른 방식으로 기록해야합니다. 그런 다음 해당 패키지와 해당 하위 패키지의 모든 클래스가 특정 로거를 가져옵니다. 이들은 모두 루트 로거를 공유하고 additivity = "true"를 사용하여 루트 로거 appender로 로그 데이터를 보낼 수 있습니다. 다음 예는 다음과 같습니다
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="pattern" value="%date{HH:mm:ss.SSS} %-5p %logger{36}
%X{akkaSource} [%file:%line] - %m%n" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} %-5p %logger{36} %X{akkaSource} [%file:%line] - %m%n</pattern>
</encoder>
</appender>
<appender name="abc" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.base}/logs/worker.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.base}/logs/worker-%d{yyyy-MM-dd_HH}.log</fileNamePattern>
<maxHistory>360</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>
<appender name="xyz" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.base}/logs/transformer.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.base}/logs/transformer-%d{yyyy-MM-dd_HH}.log</fileNamePattern>
<maxHistory>360</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>
<logger name="com.xxx.yyy.zzz" level="INFO" additivity="true">
<appender-ref ref="xyz"/>
</logger>
<logger name="com.aaa.bbb.ccc" level="INFO" additivity="true">
<appender-ref ref="abc"/>
</logger>
<root>
<level value="INFO" />
<appender-ref ref="STDOUT" />
</root>
관련 문제
- 1. Hadoop에서 메시지를 기록하는 방법은 무엇입니까?
- 2. 두 개의 서로 다른 스레드에서 TCP 메시지를 보냅니다.
- 3. 리눅스 파이프에서 두 개의 inpdendent 파일로 출력
- 4. log4net이 두 개의 개별 파일에 기록하는 것을 중지하는 방법
- 5. SVN 두 개의 다른 repos
- 6. 내가 두 개의 목록이 다른
- 7. 두 개의 다른 서버 쿼리
- 8. 두 개의 서로 다른 금액
- 9. 두 개의 서로 다른 두 개의 div에서 OnClick
- 10. 두 개의 서로 다른 관계가있는 두 개의 리소스가 있습니다.
- 11. 두 개의 다른 페이지에 두 개의 텍스트 상자가 있습니다.
- 12. 젠드에서 두 개의 다른 프로젝트에서 두 개의 라이브러리 사용하기
- 13. 두 개의 SQL 조인, 두 개의 다른 결과
- 14. Cakephp 두 개의 서로 다른 위치/도메인에있는 두 개의 데이터베이스
- 15. console.writeLine() 메시지를 텍스트 파일로 연결
- 16. 콘솔 메시지를 아이폰에 파일로 저장하기
- 17. 두 개의 .IDL 파일 또는 두 개의 .tlb 파일을 하나의 파일로 병합
- 18. 두 plist 파일로 NSUserDefaults 동작?
- 19. 두 개의 개별 파일로 구성된 사이드 바이 비디오 만들기
- 20. Ant : 두 개의 Jar 파일로 소스 디렉토리 분할
- 21. Java EAR 애플리케이션의 로그백
- 22. 로그백 및 심볼 링크
- 23. 로그백 제작 준비?
- 24. 단일 스크립트 파일로 두 개의 mochiweb 서버 시작
- 25. PyS60에서 print 문과 오류 메시지를 기록하는 방법은 무엇입니까?
- 26. 톱니 : 두 개의 서로 다른 컨트롤러에 두 개의 다른 자바 스크립트 파일을 포함 할 수 있습니까?
- 27. 동일한 양식을 사용하는 두 개의 다른 페이지에 대해 두 개의 서로 다른 레이블을 설정하십시오 - symfony
- 28. 두 개의 서로 다른 ActiveResource 모델이 두 개의 다른 연결 객체를 사용하도록 만드는 방법은 무엇입니까?
- 29. 두 개의 다른 어셈블리에서 두 개의 서로 다른 모델을 갖는데 어떤 함정이 있습니까? (EF)
- 30. 두 개의 다른 텍스트 컨텍스트에 바인드 된 두 개의 다른 텍스트 상자를 얻는 방법은 무엇입니까?
나는 내가없는 줄 바꿈 펜더와 같은 파일에 정기적으로 펜더를 가질 수 있도록 이런 종류의 일을 할 필요가있다. 이 정보를 가져 주셔서 감사합니다. – djangofan
다른 appender-ref가 지정되면 IMO additivity = false가 기본값이어야합니다. 일부 타이머 이벤트로 인해 일부 모듈이 매우 자주 로그 생성기가 될 수있는 응용 프로그램을 매우 자주 사용하며 이러한 로그를 다른 파일로 분리하려고합니다. 동일한 로그를 10 개의 다른 파일에 로깅하는 것은 실제로 이해가 가지 않습니다. 따라서 기본적으로 선택하지 않아야합니다. Logback이 다시 작성 되었기 때문에 동일한 작성자가 동일한 오류를 수정해야합니다. –
각각 다른 파일에 오류, 디버그, 정보 메시지를 기록하고 싶습니다. logback.xml로 가능합니까? – Qasim