html tool

2017年11月1日星期三

转:java Demo logback

http://blog.csdn.net/caolipeng_918/article/details/39210135


很多项目的日志使用logback+slf4j,从而替换了log4j日志的使用。。。。
   使用所需的相关jar包:slf4j-api-1.6.0.jar,logback-core-1.0.6.jar,logback-classic-1.0.6.jar.


在程序中启用logback步骤:
    1:配置logback环境,也即加载以上三个jar包(注意jar包版本的话需要匹配,否则会报jar包版本不匹配问题)----此时注意要是想打印日志到每个文件夹目录下面,需要配置logback.xml配置文件(其位置应该位于classpath下面)。
[popexizhi:
Mvn中添加相关依赖如下:
http://www.ixirong.com/2016/03/13/intro-to-java-log/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.18</version>
</dependency>
]
     2:在每个需要之行记录的类里面,调用org.slf4j.LoggerFactory.getLogger()方法得到Logger对象.
     3:调用Logger对象实例的打印方法,也即debug(),info(),warn(),error(),把记录输出到配置里面的各个appender(注意,此时打印日志的级别由logback.xml配置文件中
配置的level等级来决定)

  logback.xml配置文件如下:
[html] view plain copy
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <configuration scan="true" scanPeriod="30 seconds">//scanPeriod 配置档配置文件改动时候自动更新时间  
  3.     <appender name="file"  
  4.         class="ch.qos.logback.core.rolling.RollingFileAppender">  
  5.         <file>logs/logback.log</file>//指定日志输出到硬盘的目录  
  6.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
  7.             <fileNamePattern>logs/xxx.%d{yyyy-MM-dd}.log.zip</fileNamePattern>  
  8.         </rollingPolicy>  
  9.         <layout class="ch.qos.logback.classic.PatternLayout">  
  10.                      <span style="font-family:SimSun;">//打印日志输出的格式</span>  
  11. <span style="font-family:SimSun;">                     </span><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} -%msg%n</pattern>  
  12.         </layout>  
  13.     </appender>  
  14.         //设置Logger打印的等级  <span style="color:#FF6666;"></span>  
  15.     <root level="DEBUG">  
  16.         <appender-ref ref="file" /><span style="font-family:SimSun;">//与上面配置的appender name对应</span>  
  17.     </root>  
  18. </configuration>  
Logback.java 类如下
[html] view plain copy
  1. package com.clark.logback;  
  2.   
  3. import org.slf4j.Logger;  
  4. import org.slf4j.LoggerFactory;  
  5.   
  6. public class Logback {  
  7.       
  8.     private static Logger logger = LoggerFactory.getLogger(Logback.class);  
  9.       
  10.     public static void main(String[] args) {  
  11.         logger.info("-------start use logback--------");  
  12.           
  13.         System.out.println("=====start======");  
  14.           
  15.         System.out.println("=====end======");  
  16.   
  17. <span style="font-family:SimSun;">               </span> logger.info("-------end use logback--------");  
  18.     }  
  19. }  
之行main函数之后console台输出:
[html] view plain copy
  1. 18:58:45,265 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]  
  2. 18:58:45,265 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]  
  3. 18:58:45,265 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/E:/Eclipse_Kepler_J2EE_Workspace/Logback/build/classes/logback.xml]  
  4. 18:58:45,421 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set  
  5. 18:58:45,421 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeFilter scanning period to 30 seconds  
  6. 18:58:45,421 |-INFO in ReconfigureOnChangeFilter{invocationCounter=0} - Will scan for changes in [[E:\Eclipse_Kepler_J2EE_Workspace\Logback\build\classes\logback.xml]] every 30 seconds.   
  7. 18:58:45,421 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Adding ReconfigureOnChangeFilter as a turbo filter  
  8. 18:58:45,453 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]  
  9. 18:58:45,453 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [file]  
  10. 18:58:45,578 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use zip compression  
  11. 18:58:45,578 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use the pattern logs/xxx.%d{yyyy-MM-dd}.log for the active file  
  12. 18:58:45,593 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern 'logs/xxx.%d{yyyy-MM-dd}.log.zip'.  
  13. 18:58:45,593 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight.  
  14. 18:58:45,593 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Sun Sep 14 18:58:45 CST 2014  
  15. 18:58:45,640 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - This appender no longer admits a layout as a sub-component, set an encoder instead.  
  16. 18:58:45,640 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.  
  17. 18:58:45,640 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details  
  18. 18:58:45,640 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[file] - Active log file name: /logs/logback.log  
  19. 18:58:45,640 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[file] - File property is set to [/logs/logback.log]  
  20. 18:58:45,640 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG  
  21. 18:58:45,640 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [file] to Logger[ROOT]  
  22. 18:58:45,656 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.  
  23. 18:58:45,656 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@22ed4b - Registering current configuration as safe fallback point  
  24.   
  25. =====start======  
  26. =====end======  
查看输出到本地的日志文件如下:
[html] view plain copy
  1. 2014-09-14 18:58:45.671 [main] INFO  com.clark.logback.Logback --------start use logback--------  
  2. 2014-09-14 18:58:45.671 [main] INFO  com.clark.logback.Logback --------end use logback--------  
注意:
当我们项目中没有logback.xml配置打印日志文件的时候,会自动寻找配置文件logback.groovy,logback-test.xml(开发环境),logback.xml(生产环境).若是以上三个文件都找不到的话,会将相应的日志打印到console控制台.
[popexizhi:
这里的logback.xml所在文件夹要和配置到CLASSPATH中就可以,其他默认的还没有测试过。
]


参考博客:http://aub.iteye.com/blog/1103685    
                        http://aub.iteye.com/blog/1101260
                          http://aub.iteye.com/blog/1110008

没有评论:

发表评论