다중 로그 파일 스프링 부팅
"@Slf4j" 주석이 달린 클래스가 있는 봄 부팅 프로젝트에서 특정 클래스에 대해 다른 파일에 기록하고 싶습니다.하지만 어떻게 하는지는 알 수 없었습니다.logback-spring.xml 파일은 다음과 같이 내 속성 파일에서 참조됩니다.
logging.config= path/to/logback-spring.xml
logging.file=myCurrentLogFile.log
지금 logback-spring.xml 파일을 하나 더 만들어야 합니까?또는 현재 파일로 구성할 수 있습니다. 그렇다면 사용할 로거를 어떻게 선택할 수 있습니까?
다른 로거와 어펜더를 추가하면 됩니다.예를 들어 다음을 사용했습니다.logback.xml
<property name="LOGS_HOME" value="/var/applications/myProject/applogs/" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_HOME}myProject_log.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS_HOME}myProject_log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_HOME}myProject_audit.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss};%msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS_HOME}myProject_audit.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="com.myCompany.myProject" level="info" additivity="false">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="audit-log" level="info" additivity="false">
<appender-ref ref="FILE-AUDIT" />
<appender-ref ref="STDOUT" />
</logger>
<root level="error">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
코드에서 로거에 액세스할 수 있는 위치는 다음과 같습니다.
private static Logger audit = LoggerFactory.getLogger("audit-log");
이것은 그들을 얻을거에요.audit-log
로거와 사용FILE-AUDIT
입찰 참가인
"standart" appender는 지정된 패키지에 있는 클래스와 함께 사용됩니다.
private static Logger logger = LoggerFactory.getLogger(MyApplication.class);
이것은 사용할 것입니다.<logger name="com.myCompany.myProject" level="info" additivity="false">
그리고 명백히 파일 신청자입니다.
만약 당신이 두개의 다른 파일을 가지길 원한다면 당신은 태그 아래에 추가할 필요가 있습니다.<appender>
다음 코드:
<File name="FILE-AUDIT-SUIVI" fileName="${LOGS_HOME}myProject_audit.log">
<PatternLayout>
<pattern>
${LOGS_HOME}
</pattern>
</PatternLayout>
</File>
<RollingFile name="FileAppender" fileName="${LOGS_HOME}archived/myProject_audit.log"
filePattern="${LOGS_HOME}archived/myProject_audit.%d{yyyy-MM-dd}.%i.log">
<PatternLayout>
<Pattern>${LOGS_HOME}</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
</Policies>
<DefaultRolloverStrategy max="1" />
</RollingFile>
언급URL : https://stackoverflow.com/questions/39103771/spring-boot-multiple-log-files
'programing' 카테고리의 다른 글
Oracle의 MD5를 PHP의 MD5와 일치시키는 방법 (0) | 2023.11.06 |
---|---|
팬더 WITH 지수에서 데이터 프레임을 사전으로 변환하는 방법 (0) | 2023.11.06 |
MySQL 오류 1062: 키에 대한 중복 항목 (0) | 2023.11.06 |
getString() 대신 JDBC getNString()을 사용해야 합니까? (0) | 2023.11.06 |
.replace 또는 .strip과 같은 문자열 메서드를 호출하면 문자열을 수정(변형)하지 않는 이유는 무엇입니까? (0) | 2023.11.06 |