log4j配置优化

   a、日志输出的目的地,输出到控制台的速度比输出到文件系统的速度要慢。
  b、日志输出格式不一样对性能也会有影响,如简单输出布局(SimpleLayout)比格式化输出布局(PatternLayout)输出速度要快。可以根据需要尽量采用简单输出布局格式输出日志信息。 
   c、日志级别越低输出的日志内容就越多,对系统系能影响很大。 
   d、日志输出方式的不同,对系统系能也是有一定影响的,采用异步输出方式比同步输出方式性能要高。 
   e、每次接收到日志输出事件就打印一条日志内容比当日志内容达到一定大小时打印系能要低。

1.设置日志缓存
  1. log4j.appender.A3.BufferedIO=true   
  2. #Buffer单位为字节,默认是8K,IO BLOCK大小默认也是8K    
  3. log4j.appender.A3.BufferSize=8192 
2.设置日志输出为异步方式( 在用jmeter测试的过程中发觉使用异步方式,工作的不是很稳定。性能的提升也不显著。所以最后并没有采用。异步输出必须使用xml方式配置才能支持
  1. "DRFOUT" class="org.apache.log4j.DailyRollingFileAppender">    
  2.      "File" value="logs/brws.log" />    
  3.      "Append" value="true" />    
  4.      "DatePattern" value="yyyy_MM_dd'.'" />    
  5.      class="org.apache.log4j.PatternLayout">    
  6.          "ConversionPattern" value="%d [%t] %-5p %l %x - %m%n" />    
  7.          
  8.      
  9.   
  10.  "ASYNCOUT" class="org.apache.log4j.AsyncAppender">    
  11.      "BufferSize" value="512" />    
  12.    "DRFOUT" />    
  13.   
3. 设置log文件划分周期 log4j.appender.monitorAppender.DatePattern='.'yyyy-MM-dd-HH 其他一些输出选项还有:
1)'.'yyyy-MM: 每月 
2)'.'yyyy-ww: 每周 
3)'.'yyyy-MM-dd: 每天 
4)'.'yyyy-MM-dd-a: 每天两次 
5)'.'yyyy-MM-dd-HH: 每小时 
6)'.'yyyy-MM-dd-HH-mm: 每分钟 4.排除掉logger监控类的日志 log4j.additivity.monitorLogger=false

你可能感兴趣的:(框架学习剖析)