SLF4J和Logback日志框架详解

SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。

LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序。

SLF4J

SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。它使得用户可以在部署时使用自己想要的日志框架。SLF4J是轻量级的,在性能方面几乎是零消耗的。

SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。

Logback

Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。

由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码。

注意一个重要的特性,Logback通过JMX修改日志配置(比如日志级别从Debug调整到INFO),可以从JMX控制台直接操作,无需重启应用程序。

此外,Logback的异常堆栈跟踪的信息,有助于调试。
[java] view plain copy print ?
  1. java.lang.NullPointerException: null  
  2. at com.fimt.poc.LoggingSample.(LoggingSample.java:16) [classes/:na]  
  3. at com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0]  

SLF4J API用法

1. 从org.slf4j包导入Logger和LoggerFactory

[java] view plain copy print ?
  1. import org.slf4j.Logger;  
  2. import org.slf4j.LoggerFactory;  

2. 声明日志类

[java] view plain copy print ?
  1. private final Logger logger = LoggerFactory.getLogger(LoggingSample.class);  

3. 使用debug、warn、info、error方法并跟踪适合的参数。

所有的方法默认都使用字符串作为输入。

[java] view plain copy print ?
  1. logger.info("This is sample info statement");  

SLF4J结合Logback

在pom.xml包含下面的依赖:它会自动包含所有的依赖包logback-core、slf4j-api……
[html] view plain copy print ?
  1. <dependency>  
  2.   <groupId>ch.qos.logbackgroupId>  
  3.   <artifactId>logback-classicartifactId>  
  4.   <version>1.0.7version>  
  5. dependency>  

SLF4J能用于现有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。

SLF4J结合Log4j

在pom.xml包含下面的依赖
[html] view plain copy print ?
  1. <dependency>  
  2.   <groupId>org.slf4jgroupId>  
  3.   <artifactId>slf4j-log4j12artifactId>  
  4.   <version>1.7.2version>  
  5. dependency>  

SLF4J结合JUL (java.util.logging)

在pom.xml包含下面的依赖

[html] view plain copy print ?
  1. <dependency>  
  2.   <groupId>org.slf4jgroupId>  
  3.   <artifactId>slf4j-jdk14artifactId>  
  4.   <version>1.7.2version>  
  5. dependency>  



1
0
主题推荐
框架 应用程序 控制台 groovy 博客
猜你在找
【精品课程】竟有如此全面的软考资料?“碉堡”了! 【精品课程】HTML 5全掌控 【精品课程】Cocos2d-x实战-手把手教你上线项目-迷失航线 【精品课程】Swift语言进阶 【精品课程】深入浅出MySQL入门必备
src="http://blog.csdn.net/common/ad.html?t=4&containerId=ad_cen&frmId=ad_frm_0" style="border-width: 0px; overflow: hidden; width: 984px; height: 2px;" scrolling="no" id="ad_frm_0" frameborder="0">
查看评论
1楼 zhuojiajin 2014-12-02 20:34发表 [回复]
了解了
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
src="http://blog.csdn.net/common/ad.html?t=5&containerId=ad_bot&frmId=ad_frm_1" style="border-width: 0px; overflow: hidden; width: 984px; height: 0px;" scrolling="no" id="ad_frm_1" frameborder="0">
核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
  • 个人资料

chszs
3
  • 访问:1882195次
  • 积分:25110
  • 等级:
  • 排名:第94名
  • 原创:623篇
  • 转载:23篇
  • 译文:24篇
  • 评论:701条

你可能感兴趣的:(JAVA)