2022-04-08 TIL

nnagman·2022년 4월 8일
0

프로그래머스 백엔드 데브코스 19일차

SpringBoot part1

println의 비밀

  • 내부코드를 보면 synchronized가 있어서 성능저하를 일으킨다.

SLF4J

  • Simple Logginf Facade For Java의 줄임말로 Logging Framework들을 추상화해서 모은 것
  • Log4J, Logback도 포함되어 있다.
  • Facede Pattern을 이용함
private static final Logger logger = LoggerFactory.getLogger(Test.class);
logger.info("logger name -> {}", logger.getName());

Logback

설정파일 찾는순서

1. logback-test.xml
2. logback.groovy
3. logback.xml
4. BasicConfiguration ( 기본 설정 전략을 따른다 )

설정코드

https://logback.qos.ch/manual/configuration.html

<configuration>
    <!--    로거 텍스트 색상 설정 -->
    <conversionRule
            conversionWord="clr"
            converterClass="org.springframework.boot.logging.logback.ColorConverter"/>

    <!--    로거 프로퍼티 설정, PatternLayout을 따른다. 여기서 value에 있는 %d{...}는 conversion word다.-->
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{HH:mm:ss.SSS}){cyan} [%thread] %clr(%-5level) %logger{36} - %msg%n"/>
    <property name="FILE_LOG_PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>

    <timestamp key="bySecond" datePattern="yy-MM-dd'T'HH:mm:ss"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--    <appender name="FILE" class="ch.qos.logback.core.FileAppender">-->
    <!--        <file>logs/ktd_${bySecond}.log</file>-->
    <!--        <endcoder>-->
    <!--            <pattern>${FILE_LOG_PATTERN}</pattern>-->
    <!--        </endcoder>-->
    <!--    </appender>-->

    <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--        <file>logs/access.log</file>-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                logs/access-%d{yyy-MM-dd}.log
            </FileNamePattern>
        </rollingPolicy>

        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <logger name="org.prgrms.kdt" level="TRACE">
        <appender-ref ref="ROLLING_FILE"/>
        <!--        <appender-ref ref="FILE"/>-->
    </logger>

    <root level="WARN">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

yaml로도 가능하다.

logging:
  level:
    root: warn

꿀팁

  • Alt+Shift+Click
profile
이타적인 기회주의자

0개의 댓글