SpringBoot打印日志配置文件详解

官网的学习地址:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-logging-format

LogBack日志配置

SpringBoot默认使用LogBack作为日志,并且在 spring-boot-starter-web 包中依赖了 LogBack的相关jar包

logback-spring.xml



<configuration>
    
    <property name="LOG_HOME" value="d:/logs"/>

    
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern>
            <charset>utf8charset>
        encoder>
    appender>

    
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            
            <fileNamePattern>${LOG_HOME}/xc.%d{yyyy-MM-dd}.%i.gzfileNamePattern>
            <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}maxFileSize>
            <maxHistory>${LOG_FILE_MAX_HISTORY:-0}maxHistory>
        rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern>
        encoder>
    appender>

    
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        
        <discardingThreshold>0discardingThreshold>
        
        <queueSize>512queueSize>
        
        <appender-ref ref="FILE"/>
    appender>


    <logger name="org.apache.ibatis.cache.decorators.LoggingCache" level="info" additivity="false">
        <appender-ref ref="CONSOLE"/>
    logger>
    <logger name="org.springframework.boot" level="DEBUG"/>
    <root level="info">
        
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
    root>
configuration>

Log4j2日志配置

第一步:引入依赖

在pom.xml文件中排除SpringBoot默认log日志jar包,引入log4j2日志jar包

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
    
    <exclusions>
        <exclusion>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-loggingartifactId>
        exclusion>
    exclusions>
dependency>


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-log4j2artifactId>
dependency>

第二步:添加配置文件

log4j2-spring.xml


<configuration>

    <properties>
        <property name="LOG_HOME">d:/logsproperty>
        <property name="FILE_NAME">appproperty>
        <property name="log.sql.level">infoproperty>
    properties>


    <Appenders>
        
        <Console name="CONSOLE" target="SYSTEM_OUT">
            
            <PatternLayout charset="UTF-8" pattern="(%d{HH:mm:ss.SSS}) [%t] %-5level %l - %msg%n" />
        Console>

        
        <RollingRandomAccessFile name="RollingRandomAccessFile" fileName="${LOG_HOME}/${FILE_NAME}.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd-HH}-%i.log.gz">
            <PatternLayout charset="UTF-8" pattern="%d{HH:mm:ss.SSS} [%t] %-5level %l - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            Policies>
            
            <DefaultRolloverStrategy max="20"/>
        RollingRandomAccessFile>
    Appenders>

    <Loggers>
        <root level="info">
            <AppenderRef ref="CONSOLE" />
            <AppenderRef ref="RollingRandomAccessFile" />
        root>
    Loggers>
configuration>

配置文件详解

日志格式详解

#配置日志控制台输出格式
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
上述配置的编码中,对应符号的含义如下:
%d{HH:mm:ss.SSS}——日志输出时间

%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用

%-5level——日志级别,并且使用5个字符靠左对齐

%logger- ——日志输出者的名字

%msg——日志消息

%n——平台的换行符

日志文件命名规范

需要注意:在springboot的官网中有这么一段信息:
SpringBoot打印日志配置文件详解_第1张图片
例如:使用Log4j2日志,那么resources下的log4j2-spring.xml和log4j2.xml配置文件是SpringBoot自动识别的,不需要额外的配置,如果用其他的文件名就需要在
application.properties中指定日志配置文件的路径

logging.config=<你的配置文件路径>

你可能感兴趣的:(SpringBoot)