ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링(Spring) SLF4J와 로그백(Logback)을 이용한 로그 남기기
    Spring/환경설정 2018. 9. 6. 10:45

    자바에는 commons-logging, log4j, java util logging, logback등의 다양한 로깅 툴이 존재한다.

    이전에는 log4j와 commons-logging이 주로 사용되었고, 스프링에서도 이를 사용했다. SLF4J가 나온 이후 많은 오픈소스 프로젝트가 SLF4J를 선택하고 있다.
    여러 오픈소스 프로젝트를 사용할 때 로깅 툴이 혼재되어 충돌이 빈번하게 발생한다. 이를 방지하게 위해 SLF4J를 많이 사용한다.

    pom.xml 의 Dependencies 탭에 다음의 3가지를 추가한다.
    1) slf4j-api
    2) jcl-over-slf4j
    3) logback-classic


    spring-webmvc의 로깅 툴 commons-logging을 충돌 방지 위해 제거한다.

    src/main/resources 폴더 마우스 오른쪽 버튼 - New - File 클릭해
    logback.xml 파일명 입력해 생성




    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    			<pattern>
    				▶%-5level %d{HH:mm:ss:.SSS} [%thread] %logger[%method:%line] - %msg%n
    			</pattern>
    		</encoder>
    	</appender>
    	
    	<!-- 패키지 안에 있는 것들 org.springframework 패키지로 시작하는 것은 console에 INFO로 찍겠다. -->
    	<logger name="org.springframework" level="INFO" />
    	
    	<!-- console로 이름을 가진 appender를 info 레벨로 찍겠다. -->
    	<root level="INFO">
    		<appender-ref ref="console" />
    	</root>
    </configuration>
    

    logback.xml 코드. pattern에 로그 남길 패턴을 지정한다. 
    Logback Log의 주요 패턴은 다음과 같다

    이제 로그를 사용할 수 있다.

    다음과 같이 컨트롤러에 Logger 객체를 멤버변수로 등록 후

    info 메소드를 통해 원하는대로 문자열 출력하면

    패턴대로 출력이 되고 있고 원하는 정보도 출력할 수 있다.



Designed by Tistory.