레거시 코드가 log4j로 되어있었기에 log4j2로 마이그레이션 작업을 진행하였다.
기존에는 jdbc관련 로그들이 수없이 올라왔기에 상황에 따라 주석 혹은 로그레벨의 설정에 따라 필요한 정보만 콘솔출력되고 파일에 저장되게 하였다.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<!-- Appenders -->
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss} %-5p: %c: %m%n" />
</Console>
<RollingFile name="rollingFile" fileName="/logs/my.log" filePattern="/logs/my-%d{yyyy-MM-dd}.log.zip">
<PatternLayout pattern="%d{HH:mm:ss} %-5p: %c: %m%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
<DefaultRolloverStrategy max="10">
<Delete basePath="/logs/" maxDepth="1">
<IfFileName glob="sms-*.log.zip" />
<IfLastModified age="30d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<!-- Application Loggers -->
<Loggers>
<!-- 3rdparty Logger -->
<Logger name="org.springframework.core" level="DEBUG" additivity="false" />
<Logger name="org.springframework.beans" level="DEBUG" additivity="false" />
<Logger name="org.springframework.context" level="DEBUG" additivity="false" />
<Logger name="org.springframework.web" level="DEBUG" additivity="false" />
<!-- jdbc Logger -->
<Logger name="jdbc.connection" level="OFF" additivity="false" />
<Logger name="jdbc.sqlonly" level="OFF" additivity="false" />
<Logger name="jdbc.sqltiming" level="DEBUG" additivity="false" />
<Logger name="jdbc.audit" level="OFF" additivity="false" />
<Logger name="jdbc.resultset" level="OFF" additivity="false" />
<Logger name="jdbc.resultsettable" level="DEBUG" additivity="false" />
<!-- ====================================== -->
<!-- Log Levels: -->
<!-- FATAL, ERROR, WARN, INFO, DEBUG, TRACE -->
<!-- ====================================== -->
<!-- 개발 시 Development Mode 주석해제, Production Mode 주석처리 -->
<!-- 배포 시 Production Mode 주석해제, Development Mode 주석처리 -->
<!-- Development Mode -->
<!-- <Root level="DEBUG">
<AppenderRef ref="console" />
</Root> -->
<!-- Production Mode -->
<Root level="INFO">
<AppenderRef ref="console" />
<AppenderRef ref="rollingFile" />
</Root>
</Loggers>
</Configuration>
private static final Logger logger = LoggerFactory.getLogger(LoginController.class);
// controller 진입 시 info level 로그
logger.info("login_chk() RUN! - param: {}", param);
// 비밀번호 같은 민감한 정보는 마스킹처리
logger.info("login() RUN! - param: {USER_ID={}, SECR_NUMB={}}", param.get("USER_ID"), "****");
// 예외 발생 시 error level 로그
try {
...
} catch (Exception e) {
logger.error("approve: {} - param: {}", e.getMessage(), param);
}
'backend > Java' 카테고리의 다른 글
브라우저 캐시 관리 (0) | 2023.06.22 |
---|