实际项目中用到的logback例子

某个银行项目中实际引用的Logback实例,仅提供大家参考!!!!

[html]  view plain  copy
  1. <!-- if debug set to true, context info always print  
  2.  otherwise the contex info will print when error occour -->  
  3. <configuration scan="true" scanPeriod="60 seconds" debug="false">   
  4.   
  5.   <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">    
  6.      <layout class="ch.qos.logback.classic.PatternLayout">    
  7.        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{40} - %msg%n</pattern>    
  8.      </layout>    
  9.    </appender>    
  10.    
  11.  <!-- 所有日志文件-->  
  12.  <appender name="AllLog" class="ch.qos.logback.core.rolling.RollingFileAppender">   
  13.   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  14.    <fileNamePattern>log/abcchina/all/%d{yyyy-MM-dd}.log</fileNamePattern>   
  15.    <maxHistory>30</maxHistory>   
  16.   </rollingPolicy>   
  17.   <encoder>   
  18.    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{40} - %msg%n</pattern>   
  19.   </encoder>   
  20.  </appender>  
  21.    
  22.  <appender name="TaskLog" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  23.   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  24.    <fileNamePattern>log/abcchina/task/%d{yyyy-MM-dd}.log</fileNamePattern>   
  25.    <maxHistory>30</maxHistory>  
  26.   </rollingPolicy>   
  27.   <encoder>   
  28.    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{40} - %msg%n</pattern>   
  29.   </encoder>   
  30.  </appender>  
  31.  <appender name="SendLog" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  32.   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  33.    <fileNamePattern>log/abcchina/send/%d{yyyy-MM-dd}.log</fileNamePattern>   
  34.    <maxHistory>30</maxHistory>  
  35.   </rollingPolicy>   
  36.   <encoder>   
  37.    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{40} - %msg%n</pattern>   
  38.   </encoder>   
  39.  </appender>  
  40.  <!-- 为莫个包下的所有类指定Appender 这里也可以指定类名称例如:com.aa.bb.ClassName-->    
  41.  <logger name="com.aa.bb" >  
  42.   <appender-ref ref="TaskLog" />  
  43.  </logger>  
  44.    
  45.  <logger name="com.aa.cc" >  
  46.   <appender-ref ref="SendLog" />  
  47.  </logger>  
  48.    
  49.  <root level="INFO">   
  50.   <appender-ref ref="AllLog" />  
  51.  </root>   
  52. </configuration>  


 



之前转载了用log4j来实现同时按照日期和大小来分隔日志,后来又研究了下log4j的升级版logback,用logback也来实现同时按照日期和大小来分隔日志,话不多说,直接上配置文件:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <configuration>  
  2.   <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  3.     <file>mylog.txt</file>  
  4.     <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">  
  5.       <!-- rollover daily -->  
  6.       <fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>  
  7.        <!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->  
  8.        <maxFileSize>100MB</maxFileSize>      
  9.        <maxHistory>60</maxHistory>  
  10.        <totalSizeCap>20GB</totalSizeCap>  
  11.     </rollingPolicy>  
  12.   
  13.     <encoder>  
  14.       <pattern>%msg%n</pattern>  
  15.     </encoder>  
  16.   </appender>  
  17.   
  18.   
  19.   <root level="DEBUG">  
  20.     <appender-ref ref="ROLLING" />  
  21.   </root>  
  22.   
  23. </configuration>  

这是从官方文档上直接摘抄下来的,地址:https://logback.qos.ch/manual/appenders.html

Sometimes you may wish to archive files essentially by date but at the same time limit the size of each log file, in particular if post-processing tools impose size limits on the log files. In order to address this requirement, logback ships with SizeAndTimeBasedRollingPolicy.

有时候你本来是希望按照日期来对日志进行归档,但是同时你又希望限制每个日志文件的大小,为了满足这一需求,logback提供了SizeAndTimeBasedRollingPolicy.

按照官网说明根据你想每天,每个小时甚至每分钟都生成一个新的日志文件,并且按照文件大小来分隔,都是可以的,没问题的。

附:经过测试,简单写10w条数据,发现按照大小分割的时候并没有log4j那么精确,比如我按照2MB来分割,log4j基本上在2048K左右就会进行分割,但是logback有可能在2.1M,2.5M左右进行分割。还有写日志总共用时也略微高于log4j。(⊙﹏⊙)(⊙﹏⊙)

pom依赖备忘:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <dependency>  
  2.           <groupId>ch.qos.logback</groupId>  
  3.           <artifactId>logback-core</artifactId>  
  4.           <version>1.1.8</version>  
  5.         </dependency>  
  6.         <dependency>  
  7.           <groupId>ch.qos.logback</groupId>  
  8.           <artifactId>logback-classic</artifactId>  
  9.           <version>1.1.8</version>  
  10.         </dependency>  
  11.         <dependency>  
  12.           <groupId>ch.qos.logback</groupId>  
  13.           <artifactId>logback-access</artifactId>  
  14.           <version>1.1.7</version>  
  15.         </dependency>  





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值