您的位置:首页 > 编程语言 > Java开发

SLF4J日志框架

2016-04-11 17:11 543 查看

SLF4J日志框架

概述

日志框架对于java开发者来说并不陌生,并且其作为线上产品分析bug的有力工具。
Java的简单日志门面( Simple Logging Facade for Java  SLF4J)作为一个简单的门面或抽象,
用来服务于各种各样的日志框架,比如java.util.logging、logback和log4j。SLF4J允许最终用户在部署时集成自己
想要的日志框架。SLF4J就类似于JDBC访问数据库接口一样,它只不过是接口,真正的实现是由其它框架组件提供的。


SLF4J入门使用

maven pom配置文件

以下是最简单的使用方法,直接使用slf4j的简单实现,当然可以使用log4j或logback
<!-- SLF4J日志框架 -->
<!-- 1、SLF4J api门面 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>

<!-- 2、SLF4J api 简单实现 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.12</version>
</dependency>


程序中声明日志对象

/** 声明slf4j对象 */
private static final Logger LOGGER = LoggerFactory
.getLogger(xxx.class);


典型用法

普通记录日志格式
logger.info("info message {}, i value {}", info, i);//占位符拼接
logger.info("",Object ...objs);//通过使用占位符和可变参数来打印日志更高效
logger.info(""+info+10);//坚决杜绝这种写法
备注:占位符的方式类似C语言中的输出打印方法。

异常记录日志
try {
int result = 1 / 0; //java.lang.ArithmeticException: / by zero
} catch (Exception e) {
logger.error("exception error",e);//注意这里的写法,是没有使用占位符的
}


日志级别

error:系统发生了严重的错误, 必须马上进行处理, 否则系统将无法继续运行
warn: 系统能继续运行, 但是必须引起关注.
info: 重要的业务逻辑处理完成. 在理想情况下, INFO的日志信息要能让高级用户和系统管理员理解, 并从日志信息中能知道系统当前的运行状态
debug:主要给开发人员看,开发环境中使用
trace:系统详细信息, 主要给开发人员用, 一般来说, 如果是线上系统的话, 可以认为是临时输出, 而且随时可以通过开关将其关闭


备注:通常使用info和debug的比较多,开发和生产环境通常日志级别配置选择不同级别。

总结

简言之,建议使用SLF4J的而不是直接使用 Log4j, commons logging, logback等具体实现。就好比JDBC编程的时候我们使用的是面向接口编程而不是直接使用实现的对象来编程的。slf4j还通过使用占位符方式而避免字符串拼接产生的性能损耗。

参考

http://www.importnew.com/7450.html

http://macrochen.iteye.com/blog/1399082
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java logging