1. pom.xml
1 2 3 4 5 |
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.7</version> </dependency>
|
2. logback.xml
src/main/resources/logback.xml 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="true"> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{MM/dd HH:mm:ss.SSS} %t %p %c{15} %C{1}.%M\(%F:%L\) - %m%n</pattern> </encoder> </appender>
<appender name="webFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>C:\logs\loggingTest.log</file> <append>true</append> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 일자별로 로그파일 적용하기 --> <fileNamePattern>C:\logs\loggingTest.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 일자별로 백업파일 보관 기간--> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{MM/dd HH:mm:ss.SSS} [%thread] %-5p %C{1}.%M\(%F:%L\) - %m%n</pattern> </encoder> </appender>
<!-- Spring Loggers --> <logger name="org.springframework.core" level="INFO" /> <logger name="org.springframework.beans" level="INFO" /> <logger name="org.springframework.context" level="INFO" /> <logger name="org.springframework.web" level="INFO" />
<!-- package Loggers --> <logger name="com.spring.org" level="TRACE"> <appender-ref ref="webFileAppender" /> </logger>
<!-- root Logger --> <root level="INFO"> <appender-ref ref="stdout" /> </root> </configuration>
|
cs |
ConsoleAppender
- 콘솔에 로깅 설정
RollingFileAppender
- 파일 로깅 설정
<logger name="{패키지명}" level="{로깅 레벨}" />
- 해당 패키지 경로에는 설정 로깅 레벨 이상만 로깅 진행
<root level="INFO"> </root>
- 최상위 패키지에 기본적으로 적용되는 것
Level
- trace < debug < info < warn < error
ex) <logger name="com.spring.org" level="TRACE">
<appender-ref ref="webFileAppender" />
</logger>
- com.spring.org 패키지에는 TRACE 레벨 이상만 로깅하며 파일 로깅을 진행한다.
3. TEST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package com.spring.org;
import java.text.DateFormat; import java.util.Date; import java.util.Locale;
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;
/** * Handles requests for the application home page. */ @Controller public class HomeController {
Logger logger = LoggerFactory.getLogger(getClass());
/** * Simply selects the home view to render by returning its name. */ @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale, Model model) {
logger.trace("[TEST] LOGGING1"); logger.debug("[TEST] LOGGING2"); logger.info("[TEST] LOGGING3"); logger.warn("[TEST] LOGGING4"); logger.error("[TEST] LOGGING5");
Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home"; }
}
|
간단하게 HomeController에 로깅 테스트 진행
* 해당 패키지 명은 com.spring.org
실행 이후 Console 결과
실행 이후 C:\logs 확인 결과
'Spring > Back-end' 카테고리의 다른 글
Spring @RequestMapping produces, consumes (0) | 2020.07.12 |
---|
Comment