프로젝트를 진행하다가 보면 시스템 로그가 아닌 로그 파일을 일자별로 보관하여 현업들에게 증빙용과 시스템 운영도중 에러가 발생 하였을 경우에도 좀더 쉽게 검출 할 수 있습니다.
그리하여 오늘은 스프링부트에서 로그 설정 하는 방법에 대해서 설명 드리겠습니다.
1. 현재 프로젝트는 스프링부트 기반이며 gradle를 사용하고 있습니다. 아래의 이미지는 logback설정 파일 위치와 properties 위치를 나타낸 것입니다.
↓ 이미지 참조.
2. application.properties에 서버 시작 시 참조할 profiles를 설정 합니다.
↓ 소스 참조.
1
|
|
3. application-local.properties 파일 설정 소스입니다. 스프링 프로필은 위에서 설정한 'local'이며 소스를
보시면 로그파일 위치와 로그파일 이름을 설정 하였습니다.
↓ 소스 참조.
1
2
3
4
5
6
7
8
|
# local
spring.profiles=local
# 로그 파일 위치
# 로그 파일
testNm=testLog
|
4. logback.xml 설정 파일 입니다. 아래에 보시면 application-local.properties의 resource를 사용하여 설정된 소스입니다. 추후 dev, prod등의 properties파일을 추가 하셔도 됩니다.
↓ 소스 참조.
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
41
42
43
44
45
46
47
|
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property resource="application.properties"/>
<!--로그 파일 저장 위치-->
<!-- 로그 파일 이름 -->
<property name="LOG_FILE_NAME" value="${testNm}"/>
<!-- 콘솔 로그 일자패턴 -->
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
<encoder>
<!-- 로그 출력 패턴 지정 -->
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 로컬 로그 -->
<springProfile name="local">
<file>${LOG_FILE}${LOG_FILE_NAME}.log</file>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<fileNamePattern>${LOG_FILE}${LOG_FILE_NAME}_%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 로그 파일 보관일자 -->
<maxHistory>90</maxHistory>
<!-- 로그 최대 사이즈 -->
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
</appender>
<logger name="me.logback" level="info" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING-FILE"/>
</logger>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING-FILE"/>
</root>
</springProfile>
</configuration>
|
※ 소스 설명.
2번 줄 : logback설정에서 사용할 resource 설정 파일을 명시합니다.
3번 줄 : logback설정에서 사용할 resource 설정 파일을 명시합니다.
7번 줄 : application-local.properties에서 명시한 로그파일 경로 입니다.
10번줄 : application-local.properties에서 명시한 로그파일 이름 입니다.
13번 줄 : 로그가 console에 찍힐때 ex)2020-04-01 00:00:00 000 형식으로 찍히도록 명시합니다.
23번 줄 : 스프링의 profile중 local profile일때 설정된 방식이다라는 명시입니다.
25번 줄 : profile에 설정에 경로/파일이름.log 형식으로 로그 파일이 남겨진다라는 설정 입니다.
32번 줄 : 로그파일의 보관일 설정입니다.
34번 줄 : 최대 로그파일 보관 사이즈를 설정한 것입니다.
↓ 톰캣 구동후 이미지.
5. 만약에 에러가 발생한다면 로그파일을 쌓을 경로가 생성되었는지 확인을 하신 다음에 만약 경로가 생성이 되어있지 않다면 경로를 생성 해주시면 됩니다.
[Springboot] 스프링부트 Mybatis 연동방법 & 예제, mybatis 사용법과 mysql 연결방법 (0) | 2020.02.27 |
---|---|
[springboot] 스프링부트 Mysql 연동 방법& 예제 (0) | 2020.02.27 |
[ lombok, springboot ] 스프링부트에 lombok 롬복 설정방법 & 설명 &연결방법 (0) | 2020.02.11 |
[ springboot ] 스프링부트 스케쥴러 설정방법 & 예제 (0) | 2020.02.10 |
[ springboot ] 스프링부트 mysql 연동방법 간단 (mysql jdbc connection) (0) | 2020.02.05 |