springboot logback 日志配置。

下面的引用 SizeAndTimeBasedRollingPolicy  只能是1.2版本以上 ,如果是spring starter 中已经引用了,直接修改日志版本号即可

即在pom中加入:

   <logback.version>1.2.1</logback.version>


注意1:TimeBasedRollingPolicy 和 SizeAndTimeBasedRollingPolicy  的区别。

使用TimeBasedRollingPolicy 则没有maxFileSize 这个标签,而且问题比较多,所以建议引用 SizeAndTimeBasedRollingPolicy 。

如果是使用 SizeAndTimeBasedRollingPolicy  则在文件日期后加“.%i”,却别生成当天的多个文件。

否则会报错误---》  

java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@7c22f40b - Missing integer token, that is %i, in FileNamePattern [logs/appAllLog_%d{yyyy-MM-dd}.log]
ERROR in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@7c22f40b - See also http://logback.qos.ch/codes.html#sat_missing_integer_token
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:161)
a


注意2:每天一个日志文件大小,当天的日志文件超过50MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。


logback.xml配置如下:


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

<configuration>
<!-- <include resource="org/springframework/boot/logging/logback/base.xml"/> -->
<property name="LOG_HOME" value="logs" />


<springProfile name="debug">
<property name="ROOT_LEVEL" value="INFO" />
<property name="SPRING_LEVEL" value="INFO" />
</springProfile>


<springProfile name="dev,test">
<property name="ROOT_LEVEL" value="INFO" />
<property name="SPRING_LEVEL" value="INFO" />
</springProfile>


<springProfile name="pro,default">
 <property name="ROOT_LEVEL" value="INFO" />
  <property name="SPRING_LEVEL" value="INFO" />
</springProfile>


<!-- 控制台输出 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%-5p][%-25c] %.10000m%n</pattern>
</encoder>
<target>System.err</target>
<!-- 只输出level级别的日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>


<appender name="appAllLog"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/appAllLog_%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
<maxFileSize>50MB</maxFileSize>
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%-5p][%-25c] %.10000m%n</pattern>
</encoder>
<!--日志文件最大的大小 -->
<!-- <triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>50MB</MaxFileSize>
</triggeringPolicy> -->
</appender>

<appender name="apperror"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/apperror.log</file>

<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
              <fileNamePattern>apperror.%i.log.zip</fileNamePattern> 
              <minIndex>1</minIndex> 
              <maxIndex>3</maxIndex>
      </rollingPolicy> 


<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%-5p][%-25c] %.10000m%n</pattern>
</encoder>
<!--日志文件最大的大小 -->
<!-- <triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>20MB</MaxFileSize>
</triggeringPolicy> -->

<!-- 只输出level级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>   
      <onMismatch>DENY</onMismatch>   
</filter>

</appender>

   <logger name="com.jst" level="debug" additivity="false" >
     <appender-ref ref="apperror"/>
       <appender-ref ref="appAllLog"/>
   </logger>
   
   <logger name="org.springframework" level="${SPRING_LEVEL}"  additivity="false">
     <appender-ref ref="Console"/>
     <appender-ref ref="apperror"/>
     <appender-ref ref="appAllLog"/>
   </logger>
   
   <!-- 下面是打印mybatis语句的配置-->
<logger name="com.ibatis" additivity="false"  level="debug" > 
 <appender-ref ref="apperror"/>
 <appender-ref ref="appAllLog"/>
</logger> 
 
<logger name="org.apache.ibatis" additivity="false"  level="debug" > 
 <appender-ref ref="apperror"/>
 <appender-ref ref="appAllLog"/>
</logger> 
 
<logger name="Java.sql.Connection" additivity="false"  level="debug" > 
 <appender-ref ref="apperror"/>
 <appender-ref ref="appAllLog"/>
</logger> 
 
<logger name="java.sql.Statement" additivity="false"  level="debug" > 
 <appender-ref ref="apperror"/>
 <appender-ref ref="appAllLog"/>
</logger> 
 
<logger name="java.sql.PreparedStatement" additivity="false"  level="debug" > 
 <appender-ref ref="apperror"/> 
 <appender-ref ref="appAllLog"/>
</logger> 
 
<logger name="java.sql.ResultSet" additivity="false" level="debug" > 
 <appender-ref ref="apperror"/>
 <appender-ref ref="appAllLog"/>
</logger> 
 
 
 <logger name="com.alibaba.dubbo" additivity="false" level="error" > 
 <appender-ref ref="apperror"/>
 <appender-ref ref="appAllLog"/>
</logger> 
   
<root level="${ROOT_LEVEL}">
<appender-ref ref="apperror" />
<!-- <appender-ref ref="Console" />  -->
<appender-ref ref="appAllLog" /> 
</root>

</configuration>
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值