어펜더 목록
로거를 사용하면 한 번에 여러 파일에 데이터를 저장할 수 있습니다. 이러한 출력 데이터 스트림을 appender(append에서)라고 합니다. 꽤 많은 표준 appender가 있으므로 가장 인기 있는 것들만 다룰 것입니다.
어펜더 | 설명 | |
---|---|---|
1 | 콘솔 | 데이터를 콘솔에 출력 |
2 | 파일 | 데이터를 파일로 출력 |
삼 | DailyRollingFile | 데이터를 파일로 출력하고 파일을 주기적으로 덮어씁니다. |
4 | 비동기 | 다른 appender에 비동기적으로 데이터를 쓸 수 있습니다. |
5 | 소켓 | 특정 소켓에 데이터 쓰기 |
6 | JDBC | JDBC 프로토콜을 사용하여 데이터베이스에 메시지 쓰기 |
7 | JPA | JPA 프로토콜을 사용하여 데이터베이스에 메시지 쓰기 |
8 | HTTP | HTTP 프로토콜을 통해 원격 서버로 이벤트 전송 |
9 | SMTP | 메시지를 버퍼에 저장한 다음 이메일로 보냅니다. |
모든 appender에 대한 좋은 문서는 공식 웹 사이트 에 있습니다.
그리고 아래에서 가장 인기 있고 단순한 것을 고려할 것입니다.
ConsoleAppender
가장 간단한 어펜더는ConsoleApender
. 짐작하셨겠지만 그는 단순히 메시지를 콘솔에 씁니다. 몇 가지 흥미로운 매개변수가 있습니다.
속성 | ||
---|---|---|
1 | 이름 | 어펜더 이름 |
2 | 필터 | 일부 메시지를 필터링할 수 있습니다. |
삼 | 공들여 나열한 것 | 출력할 때 메시지의 형식을 지정합니다. |
4 | 표적 | 작성할 위치를 지정합니다. SYTEM_OUT 또는SYSTEM_ERR |
구성하는 것은 매우 쉽습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
FileAppender
가장 유용한 어펜더는FileAppender
. ConsoleAppender
그가 메시지를 파일에 쓰는 것과 달리 . 이는 애플리케이션이 서버 어딘가에서 실행 중일 때 매우 유용합니다. 매개변수가 많기 때문에 다른 운영 체제에서 파일을 쓸 수 있어야 합니다.
그러나 우리는 그들 중 가장 인기있는 것만 고려할 것입니다.
1 | 이름 | 어펜더의 이름을 지정합니다. |
2 | 필터 | 일부 메시지를 필터링할 수 있습니다. |
삼 | 공들여 나열한 것 | 출력할 때 메시지의 형식을 지정합니다. |
4 | 파일 이름 | 메시지를 쓸 파일의 이름을 지정합니다. |
5 | 추가 | 이면 true 메시지가 이전 로그에 추가되고, if false - 응용 프로그램이 시작될 때마다 로그 파일이 다시 생성됩니다. |
6 | 버퍼 크기 | 버퍼 크기를 바이트 단위로 설정합니다. |
7 | 즉시 플러시 | 이면 true 각 메시지는 실제로 즉시 디스크에 기록됩니다(버퍼 없이). 로그가 느리게 작동하기 시작하지만 이렇게 하면 프로그램 충돌 시 데이터 손실을 방지할 수 있습니다. |
파일 작업 방법을 이미 알고 있으므로 이러한 설정은 새로운 것이 아닙니다. 이러한 로거를 구성하는 것은 콘솔 로거보다 훨씬 쉽습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<File name="MyFile" fileName="logs/app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
RollingFileAppender
가장 인기 있는 어펜더는RollingFileAppender
. 이와는 달리 FileAppender
로그를 여러 개의 작은 파일로 분할할 수 있습니다. 이것은 큰 로그에 매우 중요합니다. 또한 새 파일이 작성되기 시작한 후 이전 파일로 수행할 작업에 대한 규칙을 설정할 수 있습니다.
그리고 이 appender에는 거의 100가지의 다른 설정이 있습니다. 링크에서 자세한 내용을 확인할 수 있습니다 .
이 appender의 가장 인기 있는 속성을 고려하십시오.
속성 | ||
---|---|---|
1 | 이름 | 어펜더의 이름을 지정합니다. |
2 | 필터 | 일부 메시지를 필터링할 수 있습니다. |
삼 | 공들여 나열한 것 | 출력할 때 메시지의 형식을 지정합니다. |
4 | 파일 이름 | 메시지를 쓸 파일의 이름을 지정합니다. |
5 | 파일 패턴 | 더 이상 기록되지 않는 아카이브 파일의 이름 지정 패턴을 지정합니다. |
6 | 정책 | 파일을 덮어쓰기 시작해야 하는 조건을 지정합니다. |
7 | 전략 | 오래된 파일로 수행할 작업(아카이브, 보관 일수 기록 등)을 설명합니다. |
다음은 좋은 예입니다.
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
이 매개변수는 filePattern
이전 로그 아카이브의 템플릿을 지정합니다. 트리거될 때 새 파일이 작성되는 두 가지도 있습니다.
TimeBasedTriggeringPolicy
– 새로운 날이 시작되면 작동합니다(현재 날짜가 변경됨).SizeBasedTriggeringPolicy
– 파일 크기가 250MB에 도달하면 작동합니다.
GO TO FULL VERSION