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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树