springboot 에서 로그 정 보 를 catalina.base 에 저장 하 는 과정 분석
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<!-- -->
<property name="PROJECT_NAME" value="springBootTemplate" />
<!-- LogBack -->
<property name="LOG_HOME" value="${catalina.base}/logs" />
<!-- -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- :%d ,%thread ,%-5level: 5 %msg: ,%n -->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- -->
<appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- , ERROR -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- -->
<FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.system_error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!-- -->
<MaxHistory>15</MaxHistory>
<!-- -->
<MaxFileSize>10MB</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- :%d ,%thread ,%-5level: 5 %msg: ,%n -->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="system_error" additivity="true">
<appender-ref ref="SYSTEM_FILE"/>
</logger>
<!-- , -->
<appender name="MY_INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- , ERROR -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- -->
<FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.my_info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!-- -->
<MaxHistory>15</MaxHistory>
<!-- -->
<MaxFileSize>10MB</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- :%d ,%thread ,%-5level: 5 %msg: ,%n -->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="my_info" additivity="true">
<appender-ref ref="MY_INFO_FILE"/>
</logger>
<!-- -->
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="SYSTEM_FILE" />
</root>
</springProfile>
<!-- -->
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="SYSTEM_FILE" />
</root>
</springProfile>
</configuration>
SpringBoot 프로젝트 는 공식 문서 에서 기본적으로 로그 프레임 워 크 에 의존 하고 있 으 며,그 중에서 추천 하 는 것 은 Logback 입 니 다.SpringBoot 는 Logback 에 의존 하기 때문에 수 동 으로 의존 을 추가 할 필요 가 없습니다.어떻게 설정 합 니까?
1.resources 디 렉 터 리 에 logback-spring.xml 을 새로 만 듭 니 다.
이름 이 logback-spring.xml 이면 SpringBoot 는 자동 으로 인식 되 고 읽 기 때문에 application.yml 에서 다른 설정 을 할 필요 가 없습니다.
설정 파일 은 다음 과 같 습 니 다:
같은 logback 의 설정 파일 도 해당 하 는 설정 을 읽 습 니 다.예 를 들 어 dev 를 사용 하면 dev 의 설정 을 읽 습 니 다.prod 를 사용 하면 prod 의 설정 을 사용 합 니 다.
즉,프로젝트 가 출시 될 때 까지 springBoot 의 프로필 만 수정 하면 됩 니 다.logback 을 수정 하지 않 아 도 생산 환경 과 개발 환경 에서 서로 다른 로그 단 계 를 인쇄 할 수 있 습 니 다.
콘 솔 에 인쇄 된 정 보 는 처 리 를 통 해 표 시 된 색상 에 따라 구분 되 어 문 제 를 쉽게 발견 할 수 있 습 니 다.
그리고 로그 파일 의 분류 입 니 다.
도구 클래스 를 통 해 인쇄 된 로 그 를 분리 합 니 다.
필요 한 중요 로그 정 보 를 my 에 인쇄 합 니 다.info 파일 에서 중요 한 오류 정 보 는 system 에 저 장 됩 니 다.error 파일 중.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.