IT 개발노트

log4j 적용 본문

카테고리 없음

log4j 적용

limsungju 2019. 9. 26. 15:31

pom.xml
- property 추가
--> jcloverslf4j.version
--> logback.version

- dependency 추가
--> JCL제외 코드 추가 ( 이미 Spring, MyBatis에서 JCL을 사용중이기 때문에 JCL을 추가적으로 받을 필요가 없다 )
--> jcl-over-slf4j 라이브러리 추가
--> logback 라이브러리 추가

<properties>
	<org.springframework-version>4.2.1.RELEASE</org.springframework-version>
	<jcloverslf4j.version>1.7.6</jcloverslf4j.version>
	<logback.version>1.1.1</logback.version>
</properties>
<!-- spring -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>${org.springframework-version}</version>
			
<!-- Spring Core Library -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>${org.springframework-version}</version>
	<!-- JCL 제외 -->
	<exclusions>
	   <exclusion>
		  <groupId>commons-logging</groupId>
		  <artifactId>commons-logging</artifactId>
	   </exclusion>
	</exclusions>
</dependency>

<!-- Logback --> 
<dependency>                                    
	<groupId>org.slf4j</groupId>                
	<artifactId>jcl-over-slf4j</artifactId>     
	<version>${jcloverslf4j.version}</version>  
</dependency>
<dependency>
	<groupId>ch.qos.logback</groupId>
	<artifactId>logback-classic</artifactId>
	<version>${logback.version}</version>
</dependency>

- classpath root
--> logback.xml 추가하고 [설정]

log level 순서
- debug
- info
- warn
- error

- logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	
	<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<charset>UTF-8</charset>
			<Pattern>
				%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
			</Pattern>
		</encoder>
	</appender>
	
	<appender name="fileAppender2" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/logex/logex2.log</file>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<Pattern>
				%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
			</Pattern>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<FileNamePattern>/logex/logex2.%i.log.zip</FileNamePattern> 
			<MinIndex>1</MinIndex> <!-- 파일 개수 -->
			<MaxIndex>10</MaxIndex>
		</rollingPolicy>
		<triggeringPolicy
			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>50KB</MaxFileSize> <!-- 파일 사이즈 -->
		</triggeringPolicy>
	</appender>
	
	<appender name="fileAppender3" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/logex/logex3.log</file>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<Pattern>
				%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
			</Pattern>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<FileNamePattern>/logex/logex3.%i.log.zip</FileNamePattern>
			<MinIndex>1</MinIndex>
			<MaxIndex>10</MaxIndex>
		</rollingPolicy>
		<triggeringPolicy
			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>1MB</MaxFileSize>
		</triggeringPolicy>
	</appender>	


	<!--
		kr.co.itcen.logex2 아래 패키지 로그들만  \logex\logex2.log 파일에만  출력하는 로거
	-->
	<logger name="kr.co.itcen.logex2"  level="debug" additivity="false">
            <appender-ref ref="fileAppender2" />
    </logger>
    
	<!--
		kr.co.itcen.logex3 아래 패키지 로그들만  \logex\logex3.log 파일과 콘솔로 출력하는 로거
	-->
	<logger name="kr.co.itcen.logex3"  level="warn" additivity="false">
            <appender-ref ref="fileAppender3" />
			<appender-ref ref="consoleAppender" />
    </logger> 
	
	<!-- 루트(글로벌) 로거 -->
	<root level="warn">
		<appender-ref ref="consoleAppender" />
	</root>

</configuration>