본문 바로가기
  • Welcome J-Kyu Tstory
Spring

[Spring] log4j 설정

by regularity 2022. 5. 15.
728x90

 log4j란? 

▶아파치에서 만든 오픈 소스 라이브러리

▶설정을 통해 로그를 선택적(레벨별)로 콘솔에 남기거나 파일에 생성하는 기능

▶어떤 값이 넘어오는지 확인하기 위해 System.out.print()를 찍었던 것을 log 를 통해 좀 더 기능적으로 사용할 수 있음

 

1.  설정 (Pom.xml)

	<!-- Logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${org.slf4j-version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>${org.slf4j-version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${org.slf4j-version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.15</version>
			<exclusions>
				<exclusion>
					<groupId>javax.mail</groupId>
					<artifactId>mail</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.jms</groupId>
					<artifactId>jms</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jdmk</groupId>
					<artifactId>jmxtools</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jmx</groupId>
					<artifactId>jmxri</artifactId>
				</exclusion>
			</exclusions>
			<scope>runtime</scope>
		</dependency>

 

2.  프로젝트를 생성했을 때 log4.xml

▶log4.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!-- Appenders -->
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p: %c - %m%n" />
		</layout>
	</appender>
	
	<!-- Application Loggers -->
	<logger name="com.board.controller">
		<level value="info" />
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

	<!-- Root Logger -->
	<root>
		<priority value="warn" />
		<appender-ref ref="console" />
	</root>
	
</log4j:configuration>
로그레벨 내용
 TRACE 디버그 레벨이 너무 광범위한것을 해결하기 위해서 좀 더 상세한 이벤트를 나타낸다.
DEBUG 개발시 디버그 용도로 사용하는 메시지를 나타낸다
INFO 어떠한 상태변경과 같은 정보성 메시지를 나타낸다.
WARN 프로그램의 실행에는 문제가 없지만, 향후 시스템 에러의 원인이 될 수 있는
 경고성 메시지를 나타낸다
ERROR 어떠한 요청을 처리하는 중 문제가 발생한 상태를 나타낸다.
FATAL 아주 심각한 에러가 발생한 상태를 나타낸다. 

( ※  순서대로 레벨을 가지며, 출력 레벨 설정에 따라 설정 레벨 이상의 로그가 출력 )

private static final Logger logger = LoggerFactory.getLogger(BoardController.class);
728x90

'Spring' 카테고리의 다른 글

[Spring]Tomcat 구동부터 웹페이지 동작 까지 과정  (0) 2022.05.25
[spring]스프링으로 메일 발송 하기  (0) 2022.05.15
[SpringFramework]Context란?  (0) 2022.04.28
[RedirectAttributes] 원리  (0) 2022.04.16
[Springboot]@Requestpar  (0) 2022.04.03

댓글