| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- javascript
- mongodb
- Get
- ssh
- AWS Route53
- Kubernetes
- spring
- Bootstrap
- post
- mysql
- Java
- AWS
- jsp
- terminationGracePeriodSeconds
- ajax
- AWS RDS
- 영화예매
- json
- chartjs
- 예매로직
- MySQL Error
- ES6
- zombie-hit apartment
- node.js
- git
- sessionStorage
- spread operator
- 인생이재밌다
- html
- topologySpreadConstraints
- Today
- Total
jongviet
May 25, 2021 - Java log 기록 설정 본문
*5월25일
-실습 간 항상 System.out.println / console.log와 같은 방식으로 로그를 읽어왔다. 하지만 이러한 방식으로 진행하면 히스토리관리가 안될뿐더러 협업이 불가하다. 어제자 강사님으로부터 log4j2 / slf4j를 통해 로그를 기록하는 법을 배웠다. 해당 내용을 포스팅해보고자한다.
*log4j2/slf4j 다운 및 설정 방법
-먼저 버전의 경우, log4j2 - 2.13.2 / slf4j 1.7.30을 다운받는다.
log4j2 다운 경로 : https://logging.apache.org/log4j/2.x/download.html
slf4j 다운 경로 : http://www.slf4j.org/download.html
-다운받은 파일의 압축을 해제하고 log4j2에서는 하단 파일들을 추출하고, slf4j의 경우 다운받은 알집 그대로 WebContent/WEB-INF/lib경로에 넣는다.

-그 후 로그 저장 경로에 폴더를 만들어주고(일반적으로 프로젝트 안)
C:\Users\eclipse\workspace\jsp_mvc_mysql\logs
-WEB-INF내에 log4j2.xml 파일을 생성하여 하단 코드를 넣어준다.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="baseDir">C:\Users\eclipse\workspace\jsp_mvc_mysql\logs</Property> //로그 저장 경로
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS}[%t]%-5level %logger{36}-%msg%n" /> //로그 추출 패턴 설정
</Console>
<RollingFile name="RollingFile" fileName="${baseDir}/app.log"
filePattern="${baseDir}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.zip"> //로그 추출 패턴 설정
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern> //로그 추출 패턴 설정
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
-그 후 편리성을 위해 java 프로젝트 생성시 마다 자동으로 로그 관련 코드가 입력되어 있게 설정한다.
window - preferences - java->code style->code templates -> code -> 'new java files' -> edit
${filecomment}
${package_declaration}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
${typecomment}
${type_declaration}
window - preferences - java->code style->code templates -> code -> 'class body' -> edit
private static Logger logger = LoggerFactory.getLogger(${type_name}.class);
-모든 설정을 마친 뒤 새로운 java class 파일을 생성하면, 하단과 같이 로그 관련 설정이 모두 처리되어 있다.
package controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
private static Logger logger = LoggerFactory.getLogger(Test.class);
}
-로그는 logs 폴더에서 새로고침을 눌러 조회해볼 수 있다.

'Java' 카테고리의 다른 글
| May 11, 2021 - Java 현재시간출력(LocalDateTime/DateTimeFormatter) (1) | 2021.05.11 |
|---|---|
| Mar 14, 2021 - Java (2) | 2021.03.14 |
| Mar 10, 2021 - Java 19일차 (0) | 2021.03.10 |
| Mar 9, 2021 - Java 18일차 (1) | 2021.03.09 |
| Mar 8, 2021 - Java 17일차 (0) | 2021.03.08 |