>  기사  >  Java  >  springboot 로그백 로그 프레임워크를 구성하는 방법

springboot 로그백 로그 프레임워크를 구성하는 방법

WBOY
WBOY앞으로
2023-05-11 10:46:191057검색

Logback은 애플리케이션 구성 파일과 logback-spring.xml을 통해 로그를 구성할 수 있습니다. 일반적으로 구성을 위해 전역 구성 파일인 application.yml 또는 속성을 사용하는 것으로 충분합니다. 로그 출력 요구 사항이 특히 복잡하고 개인화되어 있는 경우 logback-spring.xml 구성 방법을 사용하는 것을 고려할 수 있습니다.

1. 애플리케이션 구성 파일은 로그 구성을 구현합니다

application.properties(yml) 파일에서 로그를 구성할 수 있습니다

logging:
  level:
    root: info
    com.zimug.boot.launch.controller: debug
  file:
    path: D:\logs
    name: D:\logs\boot-launch.log
    max-size: 10MB
    max-history: 10
  pattern:
    console: '%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)'
    file: '%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger : %msg%n'
  • logging.level.root=info전체 시스템을 지정합니다. 기본 로그 수준은 info이고, 로그 수준은 통합logging.level.root=info指定整个系统的默认日志级别是info,日志级别统一化

  • logging.level.com.zimug.boot.launch.controller=debug,指定某个特定的package的日志级别是debug,日志级别个性化。优先级角度,个性配置大于统一配置。

  • logging.file.path将日志输出到指定目录,如果不指定

  • logging.file.name,日志文件的默认名称是spring.log。配置了logging.file.name之后,logging.file.path配置失效。

  • 无论何种设置,Spring Boot都会自动按天分割日志文件,也就是说每天都会自动生成一个新的log文件,而之前的会自动打成GZ压缩包。# 日志文件大小

  • 可以设置logging.file.max-size=10MB分割的每个日志的文件最大容量,超过这个size之后日志继续分隔。

  • 可以设置保留的日志时间logging.file.max-history=10,以天为单位

  • logging.pattern.file输出到文件中的日志的格式

  • logging.pattern.console控制台输出日志的格式,为了在控制台调试时候显示效果更清晰,为日志增加了颜色。red、green等等

日志格式占位符

配合这张图,看一下占位符和logging.pattern.console

springboot logback日志框架怎么配置logging.level.com.zimug.boot.launch.controller=debug이며, 특정 패키지의 로그 수준이 디버그임을 지정합니다. 로그 레벨 개인화. 우선순위 관점에서 보면 개인화된 구성이 통합 구성보다 더 중요합니다.

  • logging.file.path는 지정된 디렉터리에 로그를 출력합니다.

  • logging.file.name이 지정되지 않은 경우 기본 이름은 로그 파일은 spring.log입니다. logging.file.name을 구성한 후 logging.file.path 구성이 유효하지 않게 됩니다.

  • 설정에 관계없이 Spring Boot는 자동으로 로그 파일을 날짜별로 분할합니다. 즉, 새 로그 파일이 매일 자동으로 생성되고 이전 로그 파일은 자동으로 GZ 압축 패키지에 압축됩니다. # 로그 파일 크기

  • 각 로그의 최대 파일 크기를 logging.file.max-size=10MB로 나누어 설정할 수 있습니다. 로그는 계속해서 분리됩니다. 이 크기를 초과한 후.

  • 보존 로그 시간 logging.file.max-history=10(일

  • logging.pattern.file 출력)을 파일로 설정할 수 있습니다. 로그인 형식

logging.pattern.console은 콘솔 출력 로그 형식이며, 콘솔 디버깅 중 효과를 보다 명확하게 표시하기 위해 로그에 색상이 추가됩니다. 빨간색, 녹색 등

로그 형식 자리 표시자

이 사진을 통해 자리 표시자와 logging.pattern.console 형식 구성의 관계를 살펴보겠습니다

  • %d{HH:mm:ss.SSS}: 로그 출력 시간(빨간색)
  • %thread: 출력 로그의 프로세스 이름으로 웹 애플리케이션 및 비동기 작업 처리에 매우 유용합니다(녹색)
  • %-5level: 로그 레벨, 5자를 사용하여 왼쪽으로 정렬(파란색 강조 표시)

%logger: 로그 출력 클래스 이름(boldMagenta 굵은 마젠타색)

%msg: 로그 메시지( 청록색)

%n: 플랫폼 개행 문자
  • 2. logback-spring.xml을 사용하여 로그 구성 구현
  • 2.1. 요구 사항

    일반적으로 전역 구성 파일 application.yml을 사용하거나 속성 로그 출력 요구사항이 특히 복잡한 경우 logback-spring.xml 구성 방법을 사용하는 것을 고려할 수 있습니다.

spring boot는 자체 로그백을 사용하여 로그를 인쇄하고 여러 환경에서 인쇄합니다.

🎜🎜프로덕션 환경은 하루에 한 파일씩 콘솔과 파일로 출력하며 30일 동안 보관됩니다. 콘솔 및 파일로 출력 sql(mybatis) 출력을 인쇄합니다. 테스트 환경에서는 이 정보를 콘솔로만 출력합니다. 파일로 출력하지 마세요🎜🎜🎜🎜🎜Mybatis SQL을 출력하려면 Mybatis에서 사용하는 패키지의 로그 수준을 DEBUG로 조정하여 SQL을 출력하기만 하면 됩니다. 🎜🎜🎜2.2 요구 사항 실현🎜🎜logback은 스프링 부트의 기본 로깅 프레임워크이므로 maven 종속성을 도입할 필요가 없습니다. 간단히 logback-spring.xml을 업로드하고 resources🎜
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--引入默认的一些设置-->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <!--web信息-->
    <logger name="org.springframework.web" level="info"/>
    <!--写入日志到控制台的appender,用默认的,但是要去掉charset,否则windows下tomcat下乱码-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_PATH" value="D:/logs/boot-launch"/>
    <!--写入日志到文件的appender-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名,每天一个文件-->
            <FileNamePattern>${LOG_PATH}.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
    <!--异步写日志到文件-->
    <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>500</queueSize>
        <appender-ref ref="FILE"/>
    </appender>
    <!--生产环境:打印控制台和输出到文件-->
    <springProfile name="prod">
        <root level="info">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="asyncFileAppender"/>
        </root>
    </springProfile>
    <!--开发环境:打印控制台-->
    <springProfile name="dev">
        <!-- 打印sql -->
        <logger name="com.zimug.boot.launch" level="DEBUG"/>
        <root level="DEBUG">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
    <!--测试环境:打印控制台-->
    <springProfile name="test">
        <root level="info">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
</configuration>
🎜비동기 로그 구성에 배치하세요. 🎜🎜비동기 로그 대기열 크기 기본값은 비동기 로그 대기열의 용량인 256입니다. 🎜🎜🎜🎜discardingThreshold: 비동기 로그 대기열의 남은 용량이 이 임계값보다 작으면 TRACE, DEBUG 또는 INFO 수준 로그가 삭제됩니다. 로그를 삭제하지 않으려면(즉, 전체 저장) 0으로 설정하면 됩니다. 그러나 대기열이 가득 차면 비차단 비동기 로그는 차단 동기 로그가 됩니다. 따라서 동시성이 높고 대기 시간이 짧은 시스템에서는 중요하지 않은 로그에 대해 DiscardingThreshold 폐기 정책을 0보다 큰 값으로 설정할 수 있습니다. 🎜🎜🎜🎜2.3 테스트해 보세요🎜🎜위 구성이 완료된 후 다음 코드를 사용하여 섹션 2.1에 제시된 요구 사항을 충족하는지 테스트할 수 있습니다. 🎜아아아아

위 내용은 springboot 로그백 로그 프레임워크를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제