美文网首页springboot
springboot之配置日志

springboot之配置日志

作者: sunpy | 来源:发表于2023-01-28 17:22 被阅读0次

springboot默认启动的logback日志分析


springboot默认集成了logback日志。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.3.RELEASE)

2022-04-19 13:59:18.086  INFO 4444 --- [           main] c.s.e.EurekaServerApplication            : No active profile set, falling back to default profiles: default
2022-04-19 13:59:18.792  WARN 4444 --- [           main] o.s.boot.actuate.endpoint.EndpointId     : Endpoint ID 'service-registry' contains invalid characters, please migrate to a valid format.
2022-04-19 13:59:18.903  INFO 4444 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=7006a679-7862-3a5a-adca-267c2acdc775

说明:
2022-04-19 13:59:18.086 日期时间
INFO 日志等级
4444 进程id
main 线程名称
c.s.e.EurekaServerApplication 日志所在类名称
No active profile set, falling back to default profiles: default 日志内容

自定义logback配置文件


  • 引入自定义配置文件
logging:
  config: classpath:logback.xml
  • 自定义Layout
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <appender name="outConsole" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %30(%green(%date{yyyy-MM-dd HH:mm:ss.SSS})  %highlight(%-5level) [%thread]) %cyan(%logger{32}.%method) - %msg%n
            </pattern>
        </layout>
    </appender>
    <root level="INFO">
        <appender-ref ref="outConsole"/>
    </root>
</configuration>

logback输入日志到文件


<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <appender name="outInfoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %30(%green(%date{yyyy-MM-dd HH:mm:ss.SSS})  %highlight(%-5level) [%thread]) %cyan(%logger{32}.%method) - %msg%n
            </pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>D://log//dev/sys-log.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <root level="INFO">
        <appender-ref ref="outInfoFile"/>
    </root>
</configuration>

<rollingPolicy>:滚动记录,就是按照指定时间分割记录

生产环境的日志配置


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 日志文件名 -->
    <property name="LOG_FILE" value="sys-log" />
    <!-- 日志文件路径 -->
    <property name="LOG_PATH" value="D://log//dev" />
    <!-- 控制台日志输出格式 -->
    <property name="LOG_PATTERN_CONSOLE" value="%30(%boldGreen(%d{yyyy-MM-dd HH:mm:ss.SSS})  %highlight(%-5level) %magenta([%thread])) %boldCyan(%logger{32}.%method) - %yellow(%msg%n)" />
    <!-- 文件日志输出格式,不要配置颜色样式,会造成乱码 -->
    <property name="LOG_PATTERN_FILE" value="%30(%d{yyyy-MM-dd HH:mm:ss.SSS}  %-5level [%thread]) %logger{32}.%method - %msg%n" />
    <!--- 设置控制台日志 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN_CONSOLE}</pattern>
        </encoder>
    </appender>
    <!-- 设置日志文件 -->
    <appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${LOG_PATTERN_FILE}</pattern>
        </encoder>
        <!-- 总文件日志 -->
        <file>${LOG_PATH}/${LOG_FILE}.log</file>
        <!--
            SizeAndTimeBasedRollingPolicy  :  基于时间和大小的滚动器
            TimeBasedRollingPolicy :  基于时间的滚动器
        -->
        <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/${LOG_FILE}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <maxHistory>30</maxHistory>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>-->

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 每天的文件日志 -->
            <fileNamePattern>${LOG_PATH}/${LOG_FILE}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <!-- 日志文件保存30天,超过30天的自动删除 -->
            <maxHistory>30</maxHistory>
            <!-- 日志总大小 : 用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志 -->
            <totalSizeCap>20GB</totalSizeCap>
            <!--启动项目后清理历史日志-->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <!--日志文件最大的大小-->
            <maxFileSize>20MB</maxFileSize>
        </rollingPolicy>

    </appender>

    <!-- 设置日志级别,及需要记录日志的类 -->
    <root level="INFO">
        <appender-ref ref="consoleLog" />
        <appender-ref ref="fileLog" />
    </root>
</configuration>

相关文章

网友评论

    本文标题:springboot之配置日志

    本文链接:https://www.haomeiwen.com/subject/nzyshdtx.html