반응형
logback 변수 확인 방법
Logback에서 값을 가져오기 위해서는 우선 해당 변수의 scope가 context로 설정되어 있어야 한다.
기본적으로는 local
로 설정되어 있다.
- local: logback 설정 파일을 해석하는 동안만 활성화
- context: context에서 사용 가능하도록 삽입
- system: JVM의 환경변수 삽입
<configuration>
<property scope="context" name="log_home" value="/logs/app" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${log_home}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="error">
<appender-ref ref="FILE" />
</root>
</configuration>
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
String log_home = lc.getProperty("log_home");
// 결과
/logs/app
로그 경로 확인 방법
appender로 설정된 정보 가져오기
<configuration>
<property scope="context" name="log_home" value="/logs/app" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_home}/myApp.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${log_home}/myApp.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- keep 30 days' worth of history capped at 3GB total size -->
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<Pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender>
<logger name="com.x.y.z" level="info" >
<appender-ref ref="FILE" />
</logger>
<root level="error">
<appender-ref ref="FILE" />
</root>
</configuration>
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger logger = lc.getLogger("com.x.y.z");
// 해당 Appender의 상세한 정보가 필요한 경우
RollingFileAppender<ILoggingEvent> xyz
= (RollingFileAppender<ILoggingEvent>) logger.iteratorForAppenders().next();
TimeBasedRollingPolicy rollingPolicy
= (TimeBasedRollingPolicy) xyz.getRollingPolicy();
String activeFile = rollingPolicy.getActiveFileName(); // 활성화 된 로그 파일 명
String filePath = rollingPolicy.getFileNamePattern(); // 로그파일 패턴
rollingPolicy.getMaxHistory(); // 유지일
// 결과
/logs/app/myApp.txt
/egene/logs//cfg.%d{yyyy-MM-dd}.log
30
참고
- logback scopes: http://logback.qos.ch/manual/configuration.html#scopes
#logback #log
반응형
'FullStack > 21. Java' 카테고리의 다른 글
[Java] Log Tail 기능 (0) | 2021.03.09 |
---|---|
[MAVEN] 로컬 jar 참조하기 (0) | 2021.02.09 |
[Java] 초성 추출하기 (0) | 2021.01.29 |
[Java] 프로세스 경과 시간 측정하기 (0) | 2021.01.14 |
[JAVA] HttpClient를 통한 JOSN 전송 및 JSP로 데이터 수신 (0) | 2020.12.17 |