【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割...

原本的日志文件配置如下:

xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <contextName>logbackcontextName>
    
    <property name="log.path" value="E:\\log\\logback.log" />



    
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFOlevel>
        filter>
        <withJansi>truewithJansi>
        <encoder>
            
            
            <pattern>%black(控制台-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger) - %cyan(%msg%n)pattern>
            <charset>UTF-8charset>
        encoder>
    appender>

    
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logback.%d{yyyy-MM-dd-HH-mm}.logfileNamePattern>
            <maxHistory>30maxHistory>
            <totalSizeCap>1GBtotalSizeCap>
        rollingPolicy>
        <encoder>
            
            <pattern>文件记录-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%npattern>
            <charset>GBKcharset>
        encoder>
    appender>

    <root level="info">
        <appender-ref ref="console" />
        <appender-ref ref="file" />
    root>

    <logger name="com.sxd.controller"/>
    <logger name="com.sxd.util.LogTestController" level="WARN" additivity="false">
        <appender-ref ref="console" />
    logger>



configuration>
View Code

但是运行过程中发现,

生成日志文件并未按照上面配置中的 按照年月日时分进行分割,

并未在打到文件最大数量的时候自动清理,

并未生成到指定的日志文件目录下,而是生成到了项目根目录下。

 

解决:

xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <contextName>logbackcontextName>
    
    <property name="LOG_HOME" value="E:/log/"/>


    
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFOlevel>
        filter>
        <withJansi>truewithJansi>
        <encoder>
            
            
            <pattern>%black(控制台-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger) - %cyan(%msg%n)pattern>
            <charset>UTF-8charset>
        encoder>
    appender>

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

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}logback.%d{yyyy-MM-dd-HH-mm}[%i].logfileNamePattern>
            <maxFileSize>10kbmaxFileSize>
            <maxHistory>30maxHistory>
            <totalSizeCap>1GBtotalSizeCap>
        rollingPolicy>
        <encoder>
            
            <pattern>文件记录-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%npattern>
            <charset>UTF-8charset>
        encoder>
    appender>

    <root level="info">
        <appender-ref ref="console" />
        <appender-ref ref="file" />
    root>

    <logger name="com.sxd.controller"/>
    <logger name="com.sxd.util.LogTestController" level="WARN" additivity="false">
        <appender-ref ref="console" />
    logger>



configuration>
View Code

 解释一下:

TimeBasedRollingPolicy更换为SizeAndTimeBasedRollingPolicy

启动的时候,会提醒你10kb是必须要配置的。

 而数值的配置显得尤为重要。

 【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割..._第1张图片

【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割..._第2张图片

 

你可能感兴趣的:(【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割...)