`

【转】slf4j+logback使用

阅读更多

一 环境配置: XP+JDK1.5+Myeclipse6.6 
二 各组件的官方网址: 
   slf4j:http://www.slf4j.org/download.html 
   logback:http://logback.qos.ch/download.html 
   log4j.properties 转换为 logback.xml 工具页面 
   http://logback.qos.ch/translator 

三 项目文件: 
参考资料 
Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logback 
http://liuzidong.iteye.com/blog/776072 
SLF4J 的几种实际应用模式--之一:SLF4J+Log4J 
http://cammsia.iteye.com/blog/645080 
SLF4J 的几种实际应用模式--之二:SLF4J+Logback 
http://cammsia.iteye.com/blog/645078 

Logback 分为三个模块:logback-core,logback-classic,logback-access。logback-core 是核心;logback-classic 改善了 log4j,且自身实现了 SLF4J API,所以即使用 Logback 你仍然可以使用其他的日志实现,如原始的 Log4J,java.util.logging 等;logback-access 让你方便的访问日志信息,如通过 http 的方式。 
需要的配置文件和组件包,下面三个 jar 文件和一个 xml文件都是要放在项目的 ClassPath 上。 
slf4j-api-1.6.1.jar 
logback-classic-0.9.24.jar 
logback-core-0.9.24.jar 
   

四 示例代码:摘自slf4j 

Java代码  收藏代码
  1. class Bar {  
  2.   
  3.     Logger logger = LoggerFactory.getLogger(Bar.class);  
  4.   
  5.     public void doIt() {  
  6.         logger.debug("doing my job");  
  7.     }  
  8. }  


    

Java代码  收藏代码
  1. import org.slf4j.Logger;  
  2. import org.slf4j.LoggerFactory;  
  3.   
  4. import ch.qos.logback.classic.LoggerContext;  
  5. import ch.qos.logback.classic.joran.JoranConfigurator;  
  6. import ch.qos.logback.core.joran.spi.JoranException;  
  7. import ch.qos.logback.core.util.StatusPrinter;  
  8.   
  9. public class MyAppWithConfigFile {  
  10.   
  11.     public static void main(String[] args) {  
  12.         Logger logger = LoggerFactory.getLogger(MyAppWithConfigFile.class);  
  13.         LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();  
  14.   
  15.         try {  
  16.             JoranConfigurator configurator = new JoranConfigurator();  
  17.             lc.reset();  
  18.             configurator.setContext(lc);  
  19.             // configurator.doConfigure("E:/testworkspace/SLF4J/src/chapters/architecture/sample-config-2.xml");  
  20.             [color=red]configurator.doConfigure(MyAppWithConfigFile.class  
  21.                     .getResourceAsStream("sample-config-3.xml"));[/color]  
  22.         } catch (JoranException je) {  
  23.             StatusPrinter.print(lc.getStatusManager());  
  24.         }  
  25.         logger.info("Entering application.");  
  26.         Bar bar = new Bar();  
  27.         bar.doIt();  
  28.         logger.info("Exiting application.");  
  29.         logger.warn("WARN...");  
  30.         logger.error("ERROR...");  
  31.     }  
  32. }  




Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <configuration>  
  3. <!-- 声明变量 -->  
  4. <substitutionProperty name="log.base" value="./logs/hzg" />     
  5.       
  6. <appender name="STDOUT"  class="ch.qos.logback.core.ConsoleAppender">  
  7.     <layout class="ch.qos.logback.classic.PatternLayout">  
  8.        <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>  
  9.     </layout>  
  10.     </appender>  
  11.   
  12.     <appender name="FILE"    class="ch.qos.logback.core.FileAppender">  
  13.          <layout class="ch.qos.logback.classic.PatternLayout">  
  14.         <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>  
  15.          </layout>  
  16.          <File>${log.base}.log</File>  
  17.     </appender>     
  18.       
  19.     <logger name="chapters.architecture" level="error" />  
  20.   
  21.     <root level="debug">  
  22.         <appender-ref ref="STDOUT" />  
  23.         <appender-ref ref="FILE" />  
  24.     </root>  
  25.       
  26. </configuration>  




其中红色地方可以设置日志文件的存储位置,如是WEB应用程序可在Servlet中进行相应设置 
<logger name="chapters.architecture" level="error" /> 
这个可以设置对应包下面所要显示的日志级别 

 

转自:http://liuzidong.iteye.com/blog/776061

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics