낭만 프로그래머

Java에서 slf4j + Log4j 2 사용하기 본문

Java/Common

Java에서 slf4j + Log4j 2 사용하기

조영래 2020. 4. 6. 13:09

Java에서 간단하게 쓸모있는 SLF4J를 사용하여 로그를 찍어보자

1. Maven으로 다운로드 

<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-slf4j-impl</artifactId>
	<version>2.10.0</version>
</dependency>

 

2. log4j2.xml 파일을 WEB-INF/classes에 들어갈 수 있도록 src 폴더에 생성

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">

	<Properties>
		<Property name="logNm">izenimplant</Property>
		<Property name="layoutPattern">%d [%t] %-5level %c(%M:%L) - %m%n</Property>
	</Properties>
	
	<Appenders>
		<Console name="console" target="SYSTEM_OUT">
			<PatternLayout pattern="${layoutPattern}" />
		</Console>
		
		<RollingFile name="file" fileName="/log/${logNm}.log"
			filePattern="/log/log_backup/${logNm}_%d{yyyy-MM-dd}_%i.log">
			<PatternLayout pattern="${layoutPattern}" />
			<Policies>
				<SizeBasedTriggeringPolicy size="50MB" /> <!-- 10MB 용량이 초과시 DefaultRolloverStrategy 정책만큼 넘버링 -->
				<TimeBasedTriggeringPolicy modulate="true"
					interval="1" /><!-- 일별 로그 파일 생성 -->
			</Policies>
			<DefaultRolloverStrategy max="500"
				fileIndex="min" /><!-- 롤링 파일 500개 까지 생성 -->
		</RollingFile>
	</Appenders>

	<Loggers>

		<!-- 기본 레벨은 debug -->
		<Root level="debug" additivity="false">
			<AppenderRef ref="console" />
			<AppenderRef ref="file" />
		</Root>

		<!-- 다른 기본 패키지도 설정 제어 가능하다. -->
		<logger name="com.ariulsoft.izen.homepage" level="debug"
			additivity="false">
			<AppenderRef ref="console" />
			<AppenderRef ref="file" />
		</logger>

	</Loggers>
	
</Configuration>

 

3. 사용하기

private static Logger LOGGER = LoggerFactory.getLogger(CustomServletContext.class);

LOGGER.info("가장단순한 로그");
LOGGER.debug("디버거 로그")