辐射4 属性点修改器:log4j logback slf4j项目配置中的简单总结

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 21:07:42

一. Log4j+commons-logging 
? JAR包 
commons-logging-1.1.jar 
log4j-1.2.15.jar 
? 配置文件 
commons-logging.properties 
log4j.xml 
? commons-logging.jar包读取commons-logging.properties中指定的log,自动加载日志配置 
在commons-logging+log4j组合中commons-logging.properties指定的日志为: 
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger 
? log4j指定具体日志输出配置 
? 如果未选用commons-logging,可以在启动项目中,主动加载log4j的配置文件 
二. Logback+slf4j 
? JAR包 
slf4j-api-1.5.2.jar 
logback-classic-0.9.9.jar 
logback-core-0.9.9.jar 
? 配置文件 
Logback.xml 
? logback的加载采用编码加载

Java代码 
1.String logbackCfg = "/config/logback.xml";   
2.URL logURL = new ClassPathResource(logbackCfg).getURL();   
3.ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();   
4.LoggerContext loggerContext = (LoggerContext) loggerFactory;   
5.loggerContext.shutdownAndReset();   
6.JoranConfigurator configurator = new JoranConfigurator();   
7.configurator.setContext(loggerContext);   
8.configurator.doConfigure(logURL); 
String logbackCfg = "/config/logback.xml";
URL logURL = new ClassPathResource(logbackCfg).getURL();
ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();
LoggerContext loggerContext = (LoggerContext) loggerFactory;
loggerContext.shutdownAndReset();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(logURL);
三. Slf4j+log4j 
? JAR包 
slf4j-api-1.5.2.jar 
slf4j-log4j12-1.5.2.jar 
log4j-1.2.15.jar 
? 配置文件 
Logback.xml 
四. Slf4j+logback+logback 
注:这种情况下是项目中有log4j输出的日志以及logback数据的日志.老项目改造,log4j和logback共存的情况下.(当选用spring+slf4j+logback的时候,spring的日志输出是log4j的,这个时候采用这种配置.) 
? JARbao 
log4j-over-slf4j-1.5.2.jar 
logback-classic-0.9.9.jar 
logback-core-0.9.9.jar 
slf4j-api-1.5.2.jar 
? 配置文件 
Logback.xml 
? 配置加载

Java代码 
1.String logbackCfg = "/config/logback.xml";   
2.URL logURL = new ClassPathResource(logbackCfg).getURL();   
3.ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();   
4.LoggerContext loggerContext = (LoggerContext) loggerFactory;   
5.loggerContext.shutdownAndReset();   
6.JoranConfigurator configurator = new JoranConfigurator();   
7.configurator.setContext(loggerContext);   
8.configurator.doConfigure(logURL); 
String logbackCfg = "/config/logback.xml";
URL logURL = new ClassPathResource(logbackCfg).getURL();
ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();
LoggerContext loggerContext = (LoggerContext) loggerFactory;
loggerContext.shutdownAndReset();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(logURL);
五. Log4j配置文件示例

Java代码 
1.   
2.   
3.http://jakarta.apache.org/log4j/
">   
4. 
5.       
6.       
7.           
8.           
9.           
10.            11.                value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n" />   
12.       
   
13. 
14.   
15.           
16.               
17.               
18.       
   
19.           
20.               
21.               
22.       
   
23.           
24.               
25.               
26.       
   
27.   
   
28. 
29.       
30.       
31.           
32.           
33.           
34.           
35.           
36.           
37.            38.                value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n" />   
39.       
   
40.           
41.               
42.               
43.       
   
44.           
45.               
46.               
47.       
   
48.           
49.               
50.               
51.       
   
52.   
   
53.       
54.       
55.       
56.           
57.           
58.           
59.           
60.           
61.           
62.            63.                value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n" />   
64.       
   
65.   
   
66.      
67.    
68.       
69.           
70.           
71.           
72.   
   
73. 


http://jakarta.apache.org/log4j/
">



  
  
  
         value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n" />
  


  
   
   
  

  
   
   
  

  
           
           
       



  
  
  
  
  
  
         value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n" />
  

  
   
   
  

  
   
   
  

  
           
           
       





  
  
  
  
  
  
         value="%d{yyyy-MM-dd HH:mm:ss sss}[%-p][%-c][line:%-L] \r\n %m%n" />
  


   


  
  
  


六. Logback配置文件示例

Java代码 
1.   
2.   
3. 
4.   
5.       
6.       
7.       
8.       
9.           
10.            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n   
11.       
   
12.   
   
13.       
14.       
15.       
16.        xxxx.log   
17.           
18.            xxxx.log.%i.bak   
19.            1   
20.            12   
21.       
   
22. 
23.        24.            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">   
25.            100MB   
26.           
27.           
28.            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n   
29.       
   
30.   
   
31.     
32.       
33.            
34.            ERROR   
35.            DENY   
36.            ACCEPT   
37.       
   
38.           
39.        xxxx-err.log   
40.           
41.            xxxx-err.log.%i.bak   
42.            1   
43.            3   
44.       
   
45.           
46.            100MB   
47.       
   
48.           
49.            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n   
50.       
   
51.   
   
52. 
53.           
54.       
55.           
56.           
57.           
58.           
59.   
   
60. 
61. 
62. 
63.
 


   
    
   
   
       
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
       

   

    
   
   
        xxxx.log
       
            xxxx.log.%i.bak
            1
            12
       

                    class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            100MB
       
       
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
       

   


        
            ERROR
            DENY
            ACCEPT
       

        
        xxxx-err.log
       
            xxxx-err.log.%i.bak
            1
            3
       

       
            100MB
       

       
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
       

   

      
   
       
       
       
       
   

七. 相关简单说明 
? Log4j 
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;用户也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,用户能够更加细致地控制日志的生成过程。这些可以通过一个 配置文件来灵活地进行配置,而不需要修改程序代码

? Slf4j 
简单日记门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以选择直接实现SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。

? Logback 
Logback是由log4j创始人设计的又一个开源日记组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日记系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日记的功能。