본문 바로가기
개발/개발환경설정

LOG4J 설정

by 카리3 2020. 3. 17.

1. pom.xml

        <!-- Logging -->
		<!-- https://mvnrepository.com/artifact/log4j/log4j -->
		<dependency>
		    <groupId>log4j</groupId>
		    <artifactId>log4j</artifactId>
		    <version>${log4j-version}</version>
		</dependency>

 

2. log4j 위치

 WEB-INF\classes directory

3. log4j.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] %d{yyyy-MM-dd HH:mm:ss} %c %n%m%n" /> 
		</layout> 
	</appender>	
	<appender name="fileLogger" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="./log/seckim.log"/>
		<param name="Append" value="true"/>
	    <param name="MaxFileSize" value="1MB"/>
	    <param name="MaxBackupIndex" value="3"/>
	    <layout class="org.apache.log4j.PatternLayout">
	        <param name="ConversionPattern"
	            value="%d{yyyy-MM-dd HH:mm:ss}: [%-5p] %l> %m%n"/>
        </layout>
	</appender>

	
	<!-- Application Loggers --> 
	<logger name="secretary" additivity="false"> 
		<level value="debug" /> 
		<appender-ref ref="console"/> 
	</logger> 	
		
	<logger name="org" additivity="false"> 
		<level value="error" /> 
		<appender-ref ref="console"/> 
	</logger> 	
		
	<!-- Root Logger --> 
	<root level="info"> 
		 <appender-ref ref="console" /> 
		 <appender-ref ref="sqlLogger"/> 
	</root> 
	

    <appender name="sqlLogger" class="org.apache.log4j.ConsoleAppender">
    	<param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] %-5p:%m%n"/>
        </layout>
    </appender>
 
	
	<!-- Query Loggers  -->	
	<logger name="jdbc" additivity="false">
        <level value="error"/>
        <appender-ref ref="sqlLogger"/>
    </logger>
	<logger name="jdbc.sqlonly" additivity="true"> 
		<level value="info"/> 
		<appender-ref ref="sqlLogger"/> 
	</logger> 
	<logger name="jdbc.sqltiming" additivity="false"> 
		<level value="error"/> 
		<appender-ref ref="sqlLogger"/> 
	</logger> 		
    <logger name="jdbc.audit" additivity="false">
        <level value="error"/>
        <appender-ref ref="sqlLogger"/>
    </logger>
    <logger name="jdbc.resultset" additivity="false">
        <level value="error"/>
        <appender-ref ref="sqlLogger"/>
    </logger>
    <logger name="jdbc.resultsettable" additivity="false">
        <level value="error"/>
        <appender-ref ref="sqlLogger"/>
    </logger>
    <logger name="jdbc.connection" additivity="false">
        <level value="error"/>
        <appender-ref ref="sqlLogger"/>
    </logger>
	
	
</log4j:configuration>

4. Controller

package secretary.common.controller;

import java.util.Locale;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import secretary.common.service.TestService;

@Controller
public class MainController {

	private Logger log = LogManager.getLogger(this.getClass());

	@Autowired
	private TestService testService;

	@RequestMapping(value = "/main.do")
	public String main(Locale locale, Model model) {
		String result = testService.selectNow();
		log.info("=======>main: " + result);

		return "common/main";
	}
}

'개발 > 개발환경설정' 카테고리의 다른 글

Interceptor 설정  (0) 2020.03.17
Aspectj + 어노테이션으로 로그남기기  (0) 2020.03.17
MySQL 연결  (0) 2020.03.16
Spring MVC 설정  (0) 2020.03.12
개발환경설정  (0) 2020.02.15