logback 常用配置详解(序)logback 简介

来源:互联网 发布:miui9有对小米6优化吗 编辑:程序博客网 时间:2024/06/12 18:45

source: http://aub.iteye.com/blog/1101222


logback 常用配置详解(序)logback 简介

    博客分类: 
  • Log
java loglogback 

原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己

详细整理了logback常用配置,

不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置

logback 常用配置详解(序)logback 简介

logback 常用配置详解(一)<configuration> and <logger>

logback 常用配置详解(二)<appender>

logback 常用配置详解(三)<filter>

logback 中文手册 (官网手册的翻译版,在这里向中文版译者-陈华,说声辛苦啦

 

logback 简介

 

Ceki Gülcü在Java日志领域世界知名。他创造了Log4J ,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行。随后他又着手实现SLF4J 这个“简单的日志前端接口(Façade)”来替代Jakarta Commons-Logging 。

 

LOGBack,一个“可靠、通用、快速而又灵活的Java日志框架”。

 

 

要在工程里面使用logback需要以下jar文件:

 

slf4j-api-1.6.1.jar

官网网址:http://www.slf4j.org/

下载地址:http://www.slf4j.org/dist/slf4j-1.6.1.zip

 

logback-access-0.9.29.jar

logback-classic-0.9.29.jar

logback-core-0.9.29.jar

官网网址:http://logback.qos.ch/

下载地址:http://logback.qos.ch/dist/logback-0.9.29.zip

 

在工程src目录下建立logback.xml

注:

1.logback首先会试着查找logback.groovy文件;

2.当没有找到时,继续试着查找logback-test.xml文件;

3.当没有找到时,继续试着查找logback.xml文件;

4.如果仍然没有找到,则使用默认配置(打印到控制台)。

 

在工程src目录下建立logback包,然后在包下建立LogbackDemo.java用于测试,代码如

Java代码  收藏代码
  1. package logback;  
  2.   
  3. import org.slf4j.Logger;  
  4. import org.slf4j.LoggerFactory;  
  5.   
  6. public class LogbackDemo {  
  7.     private static Logger log = LoggerFactory.getLogger(LogbackDemo.class);  
  8.     public static void main(String[] args) {  
  9.         log.trace("======trace");  
  10.         log.debug("======debug");  
  11.         log.info("======info");  
  12.         log.warn("======warn");  
  13.         log.error("======error");  
  14.            
  15.         String name = "Aub";  
  16.         String message = "3Q";  
  17.         String[] fruits = { "apple""banana" };  
  18.           
  19.         // logback提供的可以使用变量的打印方式,结果为"Hello,Aub!"  
  20.         log.info("Hello,{}!", name);  
  21.           
  22.         // 可以有多个参数,结果为“Hello,Aub! 3Q!”  
  23.         log.info("Hello,{}!   {}!", name, message);  
  24.           
  25.         // 可以传入一个数组,结果为"Fruit:  apple,banana"  
  26.         log.info("Fruit:  {},{}", fruits);   
  27.     }  
  28. }  

   

 

下一篇日志将开始讲述logback.xml配置,所有内容都参考logback官方网站。欢迎各位大牛拍砖。。。

 

原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己

 

26 
1 
分享到:  
logback logback.xml常用配置详解(一)<c ... | log4j 配置详解实例
  • 2011-06-22 17:56
  • 浏览 17856
  • 评论(7)
  • 分类:编程语言
  • 相关推荐
参考知识库
区块链知识库234  关注 | 78  收录
深度学习知识库1611  关注 | 213  收录
React Native知识库1102  关注 | 492  收录
iOS知识库974  关注 | 1174  收录
评论
7 楼 mikey_5 2016-05-16  
不错,学习了
6 楼 aubdiy 2014-04-28  
fncj 写道
兄弟我这边有个错,帮我看下吧,谢谢!
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@91:33 - no applicable action for [category], current pattern is [[configuration][category]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@92:25 - no applicable action for [level], current pattern is [[configuration][category][level]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@93:31 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@94:40 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <configuration>  
  3.     <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->    
  4.     <property name="LOG_HOME" value="/opt/search/se/logs" />  
  5.         
  6.     <!-- 控制台日志输出 -->  
  7.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">   
  8.         <Encoding>UTF-8</Encoding>      
  9.         <layout class="ch.qos.logback.classic.PatternLayout">     
  10.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n     
  11.             </pattern>     
  12.         </layout>  
  13.     </appender>   
  14.                 
  15.     <!-- 为了把不同的信息打印到不同的文件中,这里设置了不同的日志级别打印到不同文件中 -->    
  16.     <appender name="FILEINFO"  class="ch.qos.logback.core.rolling.RollingFileAppender">    
  17.         <Encoding>UTF-8</Encoding>    
  18.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">    
  19.             <!--用户行为操作的日志打印到以log-user开头的文件中 -->    
  20.             <FileNamePattern>${LOG_HOME}/log-info.%d{yyyy-MM-dd}.log</FileNamePattern>    
  21.             <!-- 最多30个文件 -->    
  22.             <MaxHistory>30</MaxHistory>    
  23.         </rollingPolicy>    
  24.         <layout class="ch.qos.logback.classic.PatternLayout">    
  25.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n  
  26.             </pattern>    
  27.         </layout>   
  28.          <!--日志文件最大的大小-->  
  29.        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  30.          <MaxFileSize>10MB</MaxFileSize>  
  31.        </triggeringPolicy>   
  32.         <!-- 过滤器,只记录INFO级别的日志 -->    
  33.         <filter class="ch.qos.logback.classic.filter.LevelFilter">    
  34.             <level>INFO</level>    
  35.             <onMatch>ACCEPT</onMatch>    
  36.             <onMismatch>DENY</onMismatch>    
  37.         </filter>    
  38.     </appender>  
  39.            
  40.      <appender name="FILEERROR"  class="ch.qos.logback.core.rolling.RollingFileAppender">    
  41.         <Encoding>UTF-8</Encoding>    
  42.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">    
  43.             <!--在工程目录下自动生成logs文件夹 -->    
  44.             <FileNamePattern>${LOG_HOME}/log-error.%d{yyyy-MM-dd}.log</FileNamePattern>    
  45.             <!-- 最多30个文件 -->    
  46.             <MaxHistory>30</MaxHistory>    
  47.         </rollingPolicy>    
  48.         <layout class="ch.qos.logback.classic.PatternLayout">    
  49.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n  
  50.             </pattern>    
  51.         </layout>   
  52.          <!--日志文件最大的大小-->  
  53.        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  54.          <MaxFileSize>10MB</MaxFileSize>  
  55.        </triggeringPolicy>            
  56.         <filter class="ch.qos.logback.classic.filter.LevelFilter">    
  57.             <level>ERROR</level>    
  58.             <onMatch>ACCEPT</onMatch>    
  59.             <onMismatch>DENY</onMismatch>    
  60.         </filter>    
  61.     </appender>  
  62.      <!-- 按照每天生成日志文件 -->  
  63.     <appender name="FILE_SECURITY" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  64.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  65.             <!--日志文件输出的文件名-->  
  66.             <FileNamePattern>${LOG_HOME}/user/se-admin.log.%d{yyyy-MM-dd}.log</FileNamePattern>  
  67.             <MaxHistory>30</MaxHistory>  
  68.         </rollingPolicy>  
  69.         <encoder  
  70.                 class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">  
  71.             <!-- 日志输出编码 -->  
  72.             <layout class="ch.qos.logback.classic.PatternLayout">  
  73.                 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->  
  74.                 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} == %msg%n  
  75.                 </pattern>  
  76.             </layout>  
  77.         </encoder>  
  78.         <!--日志文件最大的大小-->  
  79.         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  80.             <MaxFileSize>10MB</MaxFileSize>  
  81.         </triggeringPolicy>  
  82.     </appender>  
  83.   
  84.     <!-- 日志输出级别 -->  
  85.     <root level="DEBUG">  
  86.         <appender-ref ref="STDOUT" />    
  87.         <appender-ref ref="FILEINFO" />    
  88.         <appender-ref ref="FILEERROR" />   
  89.     </root>  
  90.   
  91.     <category name="com.suning">   
  92.         <level value="DEBUG"/>  
  93.         <appender-ref ref="STDOUT"/>  
  94.         <appender-ref ref="FILEINFO" />  
  95.     </category>  
  96.       
  97.      <logger name="com.suning.search.evaluation.web.security.filter" level="INFO">  
  98.         <appender-ref ref="FILE_SECURITY"/>  
  99.     </logger>  
  100.   
  101. </configuration>  


你用的是哪个版本的logback?  我使用博客中的版本测试你的皮配置文件,没有报错

你的配置中
TimeBasedRollingPolicy与SizeBasedTriggeringPolicy混合使用,我没试过,

一般是FixedWindowRollingPolicySizeBasedTriggeringPolicy混合使用

你可以去掉SizeBasedTriggeringPolicy试试
5 楼 fncj 2014-04-24  
兄弟我这边有个错,帮我看下吧,谢谢!
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@91:33 - no applicable action for [category], current pattern is [[configuration][category]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@92:25 - no applicable action for [level], current pattern is [[configuration][category][level]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@93:31 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
11:29:06,762 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@94:40 - no applicable action for [appender-ref], current pattern is [[configuration][category][appender-ref]]
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <configuration>  
  3.     <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->    
  4.     <property name="LOG_HOME" value="/opt/search/se/logs" />  
  5.         
  6.     <!-- 控制台日志输出 -->  
  7.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">   
  8.         <Encoding>UTF-8</Encoding>      
  9.         <layout class="ch.qos.logback.classic.PatternLayout">     
  10.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n     
  11.             </pattern>     
  12.         </layout>  
  13.     </appender>   
  14.                 
  15.     <!-- 为了把不同的信息打印到不同的文件中,这里设置了不同的日志级别打印到不同文件中 -->    
  16.     <appender name="FILEINFO"  class="ch.qos.logback.core.rolling.RollingFileAppender">    
  17.         <Encoding>UTF-8</Encoding>    
  18.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">    
  19.             <!--用户行为操作的日志打印到以log-user开头的文件中 -->    
  20.             <FileNamePattern>${LOG_HOME}/log-info.%d{yyyy-MM-dd}.log</FileNamePattern>    
  21.             <!-- 最多30个文件 -->    
  22.             <MaxHistory>30</MaxHistory>    
  23.         </rollingPolicy>    
  24.         <layout class="ch.qos.logback.classic.PatternLayout">    
  25.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n  
  26.             </pattern>    
  27.         </layout>   
  28.          <!--日志文件最大的大小-->  
  29.        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  30.          <MaxFileSize>10MB</MaxFileSize>  
  31.        </triggeringPolicy>   
  32.         <!-- 过滤器,只记录INFO级别的日志 -->    
  33.         <filter class="ch.qos.logback.classic.filter.LevelFilter">    
  34.             <level>INFO</level>    
  35.             <onMatch>ACCEPT</onMatch>    
  36.             <onMismatch>DENY</onMismatch>    
  37.         </filter>    
  38.     </appender>  
  39.            
  40.      <appender name="FILEERROR"  class="ch.qos.logback.core.rolling.RollingFileAppender">    
  41.         <Encoding>UTF-8</Encoding>    
  42.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">    
  43.             <!--在工程目录下自动生成logs文件夹 -->    
  44.             <FileNamePattern>${LOG_HOME}/log-error.%d{yyyy-MM-dd}.log</FileNamePattern>    
  45.             <!-- 最多30个文件 -->    
  46.             <MaxHistory>30</MaxHistory>    
  47.         </rollingPolicy>    
  48.         <layout class="ch.qos.logback.classic.PatternLayout">    
  49.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n  
  50.             </pattern>    
  51.         </layout>   
  52.          <!--日志文件最大的大小-->  
  53.        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  54.          <MaxFileSize>10MB</MaxFileSize>  
  55.        </triggeringPolicy>            
  56.         <filter class="ch.qos.logback.classic.filter.LevelFilter">    
  57.             <level>ERROR</level>    
  58.             <onMatch>ACCEPT</onMatch>    
  59.             <onMismatch>DENY</onMismatch>    
  60.         </filter>    
  61.     </appender>  
  62.      <!-- 按照每天生成日志文件 -->  
  63.     <appender name="FILE_SECURITY" class="ch.qos.logback.core.rolling.RollingFileAppender">  
  64.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  65.             <!--日志文件输出的文件名-->  
  66.             <FileNamePattern>${LOG_HOME}/user/se-admin.log.%d{yyyy-MM-dd}.log</FileNamePattern>  
  67.             <MaxHistory>30</MaxHistory>  
  68.         </rollingPolicy>  
  69.         <encoder  
  70.                 class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">  
  71.             <!-- 日志输出编码 -->  
  72.             <layout class="ch.qos.logback.classic.PatternLayout">  
  73.                 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->  
  74.                 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} == %msg%n  
  75.                 </pattern>  
  76.             </layout>  
  77.         </encoder>  
  78.         <!--日志文件最大的大小-->  
  79.         <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  80.             <MaxFileSize>10MB</MaxFileSize>  
  81.         </triggeringPolicy>  
  82.     </appender>  
  83.   
  84.     <!-- 日志输出级别 -->  
  85.     <root level="DEBUG">  
  86.         <appender-ref ref="STDOUT" />    
  87.         <appender-ref ref="FILEINFO" />    
  88.         <appender-ref ref="FILEERROR" />   
  89.     </root>  
  90.   
  91.     <category name="com.suning">   
  92.         <level value="DEBUG"/>  
  93.         <appender-ref ref="STDOUT"/>  
  94.         <appender-ref ref="FILEINFO" />  
  95.     </category>  
  96.       
  97.      <logger name="com.suning.search.evaluation.web.security.filter" level="INFO">  
  98.         <appender-ref ref="FILE_SECURITY"/>  
  99.     </logger>  
  100.   
  101. </configuration>  
4 楼 nightkid 2014-04-11  
学习了,刚发现这个新的日志输出控件,感谢!
3 楼 lcxcqtn 2013-11-20  
讲的很清楚,学习了
2 楼 lulihong324 2013-11-16  
非常感谢,对我非常有用
1 楼 chengcheng222e 2013-10-25  
写的挺好的! 主要是包括背景  细节 挺一个
发表评论


0 0