어펜더 목록

로거를 사용하면 한 번에 여러 파일에 데이터를 저장할 수 있습니다. 이러한 출력 데이터 스트림을 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에 도달하면 작동합니다.