Spring loback 설정

1. pom.xml


 

1

2

3

4

5

<dependency>

    <groupId>ch.qos.logback</groupId>

    <artifactId>logback-classic</artifactId>

    <version>1.1.7</version> 

</dependency>

 

 

 

 

2. logback.xml


src/main/resources/logback.xml 생성

 

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

29

30

31

32

33

34

35

36

37

38

39

<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="true">

    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">

        <encoder>

            <pattern>%d{MM/dd HH:mm:ss.SSS} %t %p %c{15} %C{1}.%M\(%F:%L\) - %m%n</pattern>

        </encoder>

    </appender>

    

    <appender name="webFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>C:\logs\loggingTest.log</file>

        <append>true</append>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

             <!-- 일자별로 로그파일 적용하기 -->

            <fileNamePattern>C:\logs\loggingTest.%d{yyyy-MM-dd}.log</fileNamePattern>

             <!-- 일자별로 백업파일 보관 기간-->

            <maxHistory>30</maxHistory>

        </rollingPolicy>

        <encoder>

            <pattern>%d{MM/dd HH:mm:ss.SSS} [%thread] %-5p %C{1}.%M\(%F:%L\) - %m%n</pattern>

        </encoder>

    </appender>

    

    <!-- Spring Loggers -->

    <logger name="org.springframework.core"    level="INFO" />

    <logger name="org.springframework.beans"   level="INFO" />

    <logger name="org.springframework.context" level="INFO" />

    <logger name="org.springframework.web"     level="INFO" />

    

    <!-- package Loggers -->

    <logger name="com.spring.org" level="TRACE"> 

        <appender-ref ref="webFileAppender" />

    </logger>

    

    <!-- root Logger -->

    <root level="INFO">

        <appender-ref ref="stdout" />

    </root>

</configuration>

 

 

cs

ConsoleAppender

- 콘솔에 로깅 설정

 

RollingFileAppender

- 파일 로깅 설정

 

<logger name="{패키지명}"    level="{로깅 레벨}" />

- 해당 패키지 경로에는 설정 로깅 레벨 이상만 로깅 진행 

 

 <root level="INFO"</root>

최상위 패키지에 기본적으로 적용되는 것 

 

Level 

- trace < debug < info < warn < error

 

ex) <logger name="com.spring.org" level="TRACE"> 

        <appender-ref ref="webFileAppender" />

    </logger>

 

- com.spring.org 패키지에는 TRACE 레벨 이상만 로깅하며  파일 로깅을 진행한다. 

 

 

 

3. TEST


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

29

30

31

32

33

34

35

36

37

38

39

40

package com.spring.org;

 

import java.text.DateFormat;

import java.util.Date;

import java.util.Locale;

 

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

 

/**

 * Handles requests for the application home page.

 */

@Controller

public class HomeController {

    

    Logger logger = LoggerFactory.getLogger(getClass());

    

    /**

     * Simply selects the home view to render by returning its name.

     */

    @RequestMapping(value = "/", method = RequestMethod.GET)

    public String home(Locale locale, Model model) {

 

        logger.trace("[TEST] LOGGING1");

        logger.debug("[TEST] LOGGING2");

        logger.info("[TEST] LOGGING3");

        logger.warn("[TEST] LOGGING4");

        logger.error("[TEST] LOGGING5");

 

        Date date = new Date();

        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

        

        String formattedDate = dateFormat.format(date);

        

        model.addAttribute("serverTime", formattedDate );

        

        return "home";

    }

    

}

 

 

  

 

간단하게 HomeController에 로깅 테스트 진행 

 

 

* 해당 패키지 명은 com.spring.org

 

실행 이후 Console 결과  

실행 이후 C:\logs 확인 결과 

 

 

'Spring > Back-end' 카테고리의 다른 글

Spring @RequestMapping produces, consumes  (0) 2020.07.12

Tags

Read Next