일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트 연습
- .dockerignore
- 자바 암호화 복호화
- 신입 개발자 면접
- 신입 개발자 필수 면접 질문
- 프로그래머스 코딩테스트
- Linux
- 자바 stream
- 자바 암호화 알고리즘
- 개발자 코딩테스트
- 개발자 면접 질문
- 직장인점심구독
- 식단일기
- 신입 개발자 면접 질문
- 도커
- 식단
- 프로그래머스
- 개발자 정규직
- docker image
- 샐러드
- 개발자 채용연계형인턴
- Plating
- 플레이팅
- 자바 암호화
- 개발자 면접
- 신입 개발자 자바 면접
- 개발자 인턴
- 신입 개발자 자바 면접 질문
- docker
- 셰프의찾아가는구내식당
- Today
- Total
달리는 두딘
[Spring] Logback 적용 여정기 본문
Logback을 적용해보자
일단 maven repository에 갑니다.
https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
압도적인 숫자의 1.2.3 버전으로 결정했다.
@build.gradle
// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
testImplementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
복사한 내용을 build.gradle에 넣어줌
Gradle Refresh 필수 !
잠깐!
사용 전 lombok 설치 필!!!!수!!!!
이제 사용할 수 있다.
야호
@Slf4j annotation을 적용하고
사용하겠다고 적어준 뒤에
이런 식으로 선언하고, 사용하면 된다.
{} 안에 쏙 들어가서 나온다고 배웠었다.
이유는 모름
근데
근데
...
설정 파일이 진짜 골치 아팠다.
구글링 해서 그대로 복붙 하니까
디렉토리가 안 맞기도 하고
없는 변수명이 있고 이래서
오류도 많이 났고,
괴상망측한 메세지도 엄청 떴다.
무슨 타임리프 어쩌고 저쩌고 잡메세지까지 너무 많이 떠서
디버깅이 불가했다.
머리를 굴리다가
학원에서 log4j 설정했던 파일의 일부를 붙여 넣으니
딱 좋았다.
만세만세
돌고 돌고 돌아서 겨우 정착
앞으로 이걸로 사용하자
logback-spring.xml 파일은
src/main/resources 하위에 만들어줘야 함
@src/main/resources/logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<!-- 변수 정의 -->
<property name="LOG_DIR" value="/dev/log" />
<property name="LOG_PATH_NAME" value="${LOG_DIR}/data.log" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta(%-4relative) --- [ %thread{10} ] %cyan(%logger{20}) : %msg%n </pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH_NAME}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>labatory.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-4relative --- [ %thread{10} ] %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<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="org.thymeleaf" level="INFO"/>
<logger name="hello.mysql" additivity="true">
<level value="debug" />
</logger>
<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger>
<logger name="org.springframework.beans">
<level value="info" />
</logger>
<logger name="org.springframework.context">
<level value="info" />
</logger>
<logger name="org.springframework.web">
<level value="info" />
</logger>
<root level="debug">
<appender-ref ref="CONSOLE"/> <!-- Console에 로그를 출력하고자 할 때 사용 -->
<appender-ref ref="FILE"/> <!-- File로 로그를 남기고자 할 때 사용 -->
</root>
</configuration>
오래 걸렸다.......
이런 것마저 오래 걸리다니...........................
프로님한테 질문도 했었다.
많이 도와주셨음
감사합니당
딱 좋아~!!
화살표 넘 맘에 들구
넘 예뻐
그리고
@src/main/resources/log4jdbc.log4j2.properties
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
이 파일을 생성해준다.
그럼
결과가 이렇게 테이블 형식으로 나온다.
하하 예쁘다.
@src/main/resources/application.properties
logging.level.root=warn
기존 application.properties 내용에 이 내용을 덧붙여준다.
너무 필수 !
안 그러면 너무 많은 메세지가 뜬다.
그치만 Hikari에 관한 에러메세지가 뜬다면 driver-class와 url도 바꾸지 않는 것을 추천
해피엔딩
끝
'지식노트' 카테고리의 다른 글
[Spring] RestAPI (0) | 2022.04.29 |
---|---|
[JAVA] Collection Frameworks (1) | 2022.04.28 |
[Spring] #{} / ${}의 차이 (2) | 2022.04.28 |
[Spring] Controller - class method가 가질 수 있는 파라미터 (1) | 2022.04.28 |
[Spring] Thymeleaf 기본 문법 (3) | 2022.04.28 |