[SPRING] 봄 부팅 다중 로그 파일
SPRING봄 부팅 다중 로그 파일
"@ Slf4j"주석이 달린 클래스가있는 스프링 부트 프로젝트에서 특정 클래스에 대해 다른 파일에 기록하려고합니다. 그러나 그것을하는 방법을 이해할 수 없었다. 하나의 logback-spring.xml 파일이 있습니다.이 파일은 다음과 같은 속성 파일에서 참조됩니다.
logging.config= path/to/logback-spring.xml
logging.file=myCurrentLogFile.log
다른 logback-spring.xml 파일을 지금 만들어야합니까? 또는 현재 파일에서 구성 할 수 있으며, 그럴 경우 어떻게 사용할 로거를 선택할 수 있습니까?
해결법
-
==============================
1.다른 로거와 appender를 추가하십시오. 예를 들어 다음 logback.xml을 사용했습니다.
다른 로거와 appender를 추가하십시오. 예를 들어 다음 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");
그러면 감사 로그 로거가 생성되고 FILE-AUDIT appender가 사용됩니다.
"standart"appender는 지정된 패키지에있는 클래스와 함께 사용됩니다.
private static Logger logger = LoggerFactory.getLogger(MyApplication.class);
이것은
및 obviosly FILE appender를 사용합니다. -
==============================
2.두 개의 다른 파일을 원할 경우
태그 아래에 다음 코드를 추가해야합니다. 두 개의 다른 파일을 원할 경우
태그 아래에 다음 코드를 추가해야합니다. <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>
from https://stackoverflow.com/questions/39103771/spring-boot-multiple-log-files by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] RestTemplate을 사용하여 보안 쿠키 설정 (0) | 2019.04.06 |
---|---|
[SPRING] HibernateException : 현재 스레드에 대해 트랜잭션 동기화 세션을 가져올 수 없습니다. (0) | 2019.04.05 |
[SPRING] Spring MVC LocaleChangeInterceptor 어노테이션이 작동하지 않음 (0) | 2019.04.05 |
[SPRING] Spring RestTemplate 클라이언트 - 연결이 거부 된 예외 (0) | 2019.04.05 |
[SPRING] Spring 빈을 ExecutorService의 ThreadLocal 인스턴스처럼 동작하게 만들기 (0) | 2019.04.05 |