스프링 부트 사용시 기본 로그 spring-boot-starter-logging 제거해야 합니다.
| all { |
| exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' |
| } |
build.gradle 에 log4j2 와 쿼리로그를 볼수 있도록 추가하겠습니다.
| build.gradle log4j2 추가 |
| implementation 'org.springframework.boot:spring-boot-starter-log4j2' |
| |
| build.gradle 쿼리로그 추가 |
| implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' |
build.gradle 전체
| plugins { |
| id 'org.springframework.boot' version '2.5.6' |
| id 'io.spring.dependency-management' version '1.0.11.RELEASE' |
| id 'java' |
| id 'war' |
| } |
| |
| group = 'com.example' |
| version = '0.0.1-SNAPSHOT' |
| sourceCompatibility = '1.8' |
| |
| configurations { |
| compileOnly { |
| extendsFrom annotationProcessor |
| } |
| all { |
| exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' |
| } |
| } |
| |
| repositories { |
| mavenCentral() |
| } |
| |
| dependencies { |
| implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' |
| implementation 'org.springframework.boot:spring-boot-starter-web' |
| implementation 'org.springframework.boot:spring-boot-starter-web-services' |
| implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' |
| compileOnly 'org.projectlombok:lombok' |
| developmentOnly 'org.springframework.boot:spring-boot-devtools' |
| runtimeOnly 'com.h2database:h2' |
| runtimeOnly 'mysql:mysql-connector-java' |
| annotationProcessor 'org.projectlombok:lombok' |
| providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' |
| testImplementation 'org.springframework.boot:spring-boot-starter-test' |
| implementation 'org.springframework.boot:spring-boot-starter-log4j2' |
| implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' |
| |
| } |
| |
| test { |
| useJUnitPlatform() |
| } |
resources 하위 2개 파일 생성
- log4j2.xml
- log4jdbc.log4j2.properties
log4j2.xml 전체
| <?xml version="1.0" encoding="UTF-8" ?> |
| <Configuration status="DEBUG"> |
| <Properties> |
| <Property name="LOG_PATTERN">%d{HH:mm:ss.SSSZ} [%t] %-5level %logger{36} - %msg%n</Property> |
| </Properties> |
| <Appenders> |
| <Console name="ConsoleLog" target="SYSTEM_OUT"> |
| <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/> |
| </Console> |
| </Appenders> |
| <Loggers> |
| <Root level="info"> |
| <AppenderRef ref="ConsoleLog" /> |
| <AppenderRef ref="FileLog" /> |
| </Root> |
| </Loggers> |
| </Configuration> |
log4jdbc.log4j2.properties 전체
| log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator |
| log4jdbc.dump.sql.maxlinelength=0 |
application.properties 전체
| spring.thymeleaf.cache=false |
| |
| spring.datasource.url=jdbc:log4jdbc:mysql://1.1.1.1:3306/DBID?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul |
| spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy |
| spring.datasource.username=DBID |
| spring.datasource.password=DBPW |
| |
| |
| mybatis.mapper-locations=classpath:mapper/**/*.xml |
| |
| |
| mybatis.configuration.map-underscore-to-camel-case=true |
| |
| |
| mybatis.type-aliases-package=com.example.demo.domain |
| |
| server.servlet.jsp.init-parameters.development=true |
| |
| |
| logging.config=classpath:log4j2.xml |