반응형
개발환경
- Spring Boot 2.5.6
- Gradle
- Java 11
- Oracle 11g
build.gradle 의존성 추가
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
application.properties 오라클 설정 수정
class-name과 jdbc-url을 수정한다.
# 기본적으로 이렇게 설정되어 있을 것이다.
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.hikari.jdbc-url=jdbc:oracle:thin:@localhost:1521:xe
# 이렇게 설정을 변경한다.
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.hikari.jdbc-url=jdbc:log4jdbc:oracle:thin:@localhost:1521:xe
logback 설정 파일을 생성한다.(log가 어떻게 출력될 것인가에 대한 설정 파일)
log4j2.xml이 기본(Default) 이름인 것 같다.
만약 본인이 원하는 이름이 있다면 아래와 같이 application.properties에서 logging.config로 경로 및 파일 이름을 지정하면 된다.
logging.config= classpath:logback/logback-default.xml
log4j2.xml 파일을 작성한다.
작성 방법은 저마다 다양하다. 필요에 따라 추가 하거나 덜어내거나 하면 된다.
아래 코드는 모 블로그에서 가져왔는데, 어디서 가져왔는지 기억이 나지 않는다. 조속한 시일 내에 출처를 남기겠습니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--로그 파일 저장 위치-->
<property name="LOGS_PATH" value="./logs"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm} %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<appender name="DAILY_ROLLING_FILE_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_PATH}/logback.log</file>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGS_PATH}/logback.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>5MB</maxFileSize>
<!-- kb, mb, gb -->
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<logger name="com.nextday.gateway" level="INFO">
<appender-ref ref="DAILY_ROLLING_FILE_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
<logger name="jdbc.sqltiming" level="DEBUG"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.resultsettable" level="DEBUG"/>
<logger name="jdbc.connection" level="OFF"/>
</configuration>
Log 출력 확인
Gradle Refresh하여 build.gradle 설정 저장 후 Application 실행하여 쿼리 실행을 위한 아무 동작을 한다.
작성 글 목록을 출력하는 기능을 웹에서 수행했다. IDE에서 아래와 같이 Console창에 Log가 출력되고 있다.
궁금한 점은, 기본 Log 설정 파일 이름(log4j2.xml)로 설정 파일을 작성하고 Log가 출력된 결과와 Log 설정 파일 이름을 임의로 변경 후 Log가 출력된 결과가 다르다는 점이다. 설정도 동일하다. 좀 더 알아봐야겠다.
참고
반응형
'Programming > Spring' 카테고리의 다른 글
[Spring] XML 대신 Java 클래스 파일로 스프링 관련 설정하기 (0) | 2022.02.03 |
---|---|
[Spring Boot] Path with "WEB-INF" or "META-INF" 에러 (0) | 2021.11.11 |
[Spring Boot] Maven 설치하기 (0) | 2021.10.20 |
[Spring Boot] Log Level 설정을 통해 디버깅 하기 (0) | 2021.10.19 |
[Spring Boot] mvnw 파일의 역할 (0) | 2021.10.18 |