Log4j?
Log4j : Log for Java
로그 출력을 다양하게 도와주는 오픈소스 라이브러리
웹개발 하는분들은..정말 많이 쓰는 기본..
콘솔에도 찍고..주기적으로 파일로 쌓기도하고..
Appender를 정의해서 다양하게 쓸 수 있다..
Log4j 레벨 순서(왼쪽으로 갈수록 높음)
FATAL > ERROR > WARN > INFO > DEBUG > TRACE
패턴을 적용해서 로그를 찍는데, 다음은 패턴에 대한 옵션이다.
%p |
debug, info, warn, error, fatal 등의 priority 출력 |
%m |
로그내용을 출력한다. |
%d |
로깅 이벤트가 발생한 시간을 출력한다. ex)포맷은 %d{HH:mm:ss} 같은 형태의 SimpleDateFormat |
%t |
로그이벤트가 발생된 쓰레드의 이름 출력 |
%F |
로깅이 발생한 프로그램 파일명 출력 |
%l |
로깅이 발생한 caller의 정보 출력 |
%L |
로깅이 발생한 caller의 라인수 출력 |
%M |
로깅이 발생한 method 이름 출력 |
% |
% 표시 출력 |
%n |
플랫폼 종속적인 개행문자 출력 |
%c |
카테고리 출력 ex)카테고리가 a.b.c 처럼 되어있다면 %c{2}는 b.c 출력 |
%C |
클래스명 출력 ex)클래스구조가 org.apache.xyz.SomeClass 처럼 되어있다면 %C{2}는 xyz.SomeClass 출력 |
%r |
어플리케이션 시작 이후 부터 로깅이 발생한 시점의 시간(milliseconds) 출력 |
%x |
로깅이 발생한 thread와 관련된 NDC(nested diagnostic context) 출력 |
%X |
로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context) 출력 |
다음은 주요 Appender 클래스
ConsoleAppender |
org.apache.log4j.ConsoleAppender 콘솔에 로그 메시지 출력 |
FileAppender |
org.apache.log4j.FileAppender 파일에 로그 메시지 기록 |
RollingFileAppender |
org.apache.log4j.rolling.RollingFileAppender 파일 크기가 일정 수준 이상이 되면 기존 파일을 백업파일로 바꾸고 처음부터 기록 |
DailyRollingFileAppender |
org.apache.log4j.DailyRollingFileAppender 일정 기간 단위로 로그 파일을 생성하고 기록 |
JDBCAppender |
org.apache.log4j.jdbc.JDBCAppender DB에 로그를 출력. 하위에 Driver, URL, User, Password, Sql과 같은 parameter를 정의할 수 있음 |
SMTPAppender |
로그 메시지를 이메일로 전송 |
NTEventAppender |
윈도우 시스템 이벤트 로그로 메시지 전송 |
설정파일은 xml이나 .properties로 할 수 있는데..xml로 하는게 관리가 개인적으로는 편했다..
Log4j2.xml 설정 예)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p [%c] %m%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="java.sql" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="egovframework" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<!-- log SQL with timing information, post execution -->
<Logger name="jdbc.sqltiming" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="org.springframework" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Root level="INFO">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
'Web&Spring' 카테고리의 다른 글
Refused to display in a frame because it set 'X-Frame-Options' to 'DENY' X-frame-Options 응답 헤더 설정 (0) | 2020.11.27 |
---|---|
[Javascript]IE 구버전에서 const, let 변수 사용 오류 (1) | 2020.11.27 |
Error parsing XPath '/sqlMap/select'. Cause: java.util.NoSuchElementException 에러 해결 (0) | 2020.11.27 |
[Mybatis] java.lang.NumberFormatException: For input string: 에러 (0) | 2020.11.27 |
Eclipse tomcat log를 파일로 확인하기 (0) | 2020.11.27 |