한줄코딩 210807 logback

bluesky·2021년 8월 7일
1

[1]logback 소개.

로그 : 프로그램의 오류, 운영정보의 기록.
로그를 남길때 사용할수 있는 라이브러리가 logback임.

[2]사용처

  • 시스템의 오작동 원인을 찾을 때 사용.
  • 해킹의 흔적을 찾을 때
  • 기타 어 왜이러지? 싶을때

[3]사용 하는 방법

  1. logback을 설정한다.
  2. getLogger 메서드로 logger 인스턴스를 받는다.
  3. 필요한 곳에 debug(), info(), warn() and error() 메서드를 호출한다.

[4] 사용하기 위해 알아야할 정보

{1}주요 클래스 : logger, appender, layout

logger: 로깅을 하는 데 사용되는 클래스
appender : 어디로 출력할지 정하는 클래스(xml에서 설정.)
layout : 출력 형식을 결정하는 데 사용되는 클래스.

{2}* Effective Level aka Level Inheritance

{3} 요청 레벨 vs 출력 레벨(영향 레벨)

Basic Selection Rule
A log request of level p issued to a logger having an effective level q, is enabled if p >= q.

  • 어떠한 설정도 되어 있지 않을경우, 기본적으로 root 의 출력 레벨이 DEBUG로 설정된다.

[5] 사용예시

{1} 설정 파일 없이 사용하는 예

(1) 구성

(2) 실행 결과

{2} 설정파일을 같이 사용하는 예.

(1) 구성

<?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.ldstr.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>

(2) 출력 결과

참고자료

https://blog.daum.net/question0921/1293

https://hochoon-dev.tistory.com/entry/JAVA-Logback-%EC%82%AC%EC%9A%A9%EB%B2%95

https://www.bubblecat.co.kr/2019/05/logback.html

https://thinkwarelab.wordpress.com/2016/11/18/java%EC%97%90%EC%84%9C-logback%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A1%9C%EA%B9%85logging-%EC%82%AC%EC%9A%A9%EB%B2%95/

https://jeong-pro.tistory.com/154

https://oingdaddy.tistory.com/78

http://logback.qos.ch/manual/introduction.html

profile
SMART https://github.com/dongseoki?tab=repositories

0개의 댓글