필자의 환경 구성 : SPRING Boot / Gradle
쿼리문장을 Console화면에서 출력하고자 할때!
방법은 2가지가 있습니다!
- 사용할 클래스에서 Log클래스를 생성하여 Log를 찍는 방법
- Log4JDBC를 사용하여 Log를 찍는 방법
본 게시글에서는 첫 번째 방법에 대해 알아보도록 하겠습니다.
먼저, Logback이 무엇인가?
그럼 Log는 무엇일까요? 여러분이 만든 많은 프로그램들은 다양한 로그들을 남기고 있습니다.
사용자들은 직접 볼 순 없지만 이 로그들은 프로그램 개발에 있어서 개발 및 유지보수와 에러 확인하는데 매우 유용하게 쓰이고 있습니다.
그럼 이러한 로그를 스프링에서는 어떻게 출력시킬까요?
이전까지 자바 프로젝트에서 가장 많이 사용되는 로그 라이브러리는 Log4j였습니다.
현재는 개발이 종료되었지만, 이 Log4j를 토대로 만들어진 것이 Logback입니다!
Logback의 로깅 구현체 중 하나로 sl4j(Simple Logging Facade for Java)를 함께 사용합니다.
이것을 사용한다면 내부적으로 Logback이나 log4j와 같은 기능을 구현한다는 말이죠
스프링 부트로 프로젝트를 만들면 Logback을 기본으로 사용하게 됩니다.
그렇기 때문에 로그를 사용하는 코드에서는 로깅 구현체만 추가하시면 됩니다.
글로 설명하니 이해가 잘 안되시죠?
자, 아래 순서대로 따라하시면 됩니다!
1. 아래 사진처럼 resources 폴더에 logback-spring.xml파일을 새로 만들어 줍니다!
2. logback-spring.xml안에는 아래와 같이 작성하세요!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration debug="true">
<!-- Appenders : 로그를 어디에 출력할지 (콘솔, 파일 기록, DB 저장 등) 결정 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder : appender에 포함되어 출력할 로그를 지정한 형식으로 변환 -->
<!-- DEBUG용 -->
<encoder>
<Pattern>%d %5p [%c] %m%n</Pattern>
</encoder>
</appender>
<appender name="console-infolog" class="ch.qos.logback.core.ConsoleAppender">
<!-- INFO 레벨용 -->
<encoder>
<Pattern>%d %5p %m%n</Pattern>
</encoder>
</appender>
<!-- 로거 -->
<!-- logger : 로그를 출력하는 요소 : level 속성을 통해서 출력할 로그의 레벨을 조절하여 appender에 전달 -->
<logger name="board" level="DEBUG" appender-ref="console"/> <!-- DEBUG레벨 로그를 출력하는 형식은 console이라는 이름의 appender를 사용 -->
<logger name="org.springframework" level="error"/>
<logger name="org.springframework.jdbc" level="error"/>
<!--
append level
trace : 모든 로그를 출력합니다.
debug : 개발할 때 디버그 용도로 사용됩니다.
info : 상태 변경 등과 같은 정보성 메세지를 나타냅니다.
warn : 프로그램의 실행에는 문제 없지만 추후 시스템에러의 원인이 될 수 있다는 경고성 메세지를 의미합니다.
error : 요청을 처리하던 도중 문제가 발생한 것을 의미합니다.
-->
<!-- 루트 로거 -->
<root level="error">
<appender-ref ref="console"/>
</root>
</configuration>
3. 이제 로그를 적용할 클래스에 Logger 클래스를 생성해 출력합시다!
- 아래 사진에서는 BoardController에서 Logger 인스턴스를 만들어 openBoardList메서드에서 로그를 찍고 있습니다.
4. 콘솔에서 로그를 확인합니다.
- 아래 로그는 해당 메서드를 출력하는 뷰를 통해 테스트한 결과입니다.
다음은 Log4JDBC를 통해 출력하는 방법을 알아보도록 하겠습니다.
감사합니다.
참고 서적
스프링 부트 시작하기이인우 |
'IT > Programming' 카테고리의 다른 글
[파이썬] 윈도우에서 Django 프레임워크로 웹페이지 구현하기 #1 (0) | 2022.07.07 |
---|---|
SPRING BOOT LOGBACK 사용하기 ver.2 (0) | 2019.10.14 |
[XML] cvc-complex-type.4: Attribute 'version' must appear on element 'web-app'. (0) | 2019.09.26 |
[MYSQL연동] Caused by: java.sql.SQLException: The server time zone value (0) | 2019.09.26 |
<JAVA 메모리관리> 가비지 콜렉터 / GC (0) | 2019.08.13 |