首页 技术 正文
技术 2022年11月18日
0 收藏 470 点赞 4,019 浏览 2094 个字

maven依赖        


<!– slf4j (级联:log4j/slf4j-api) –><dependency>        <groupId>org.slf4j</groupId>        <artifactId>slf4j-log4j12</artifactId>        <version>1.7.5</version></dependency> 配置demo        


log4j.properties# Output pattern : date [thread] priority category – message log4j.rootLogger=info,console,logFile #Consolelog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=%d – xxl-net – %p [%c] – <%m>%n #RollingFilelog4j.appender.logFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.logFile.File=${catalina.base}/logs/xxl-net.loglog4j.appender.logFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logFile.layout.ConversionPattern=%d – xxl-net – %p [%c] – <%m>%nLogService.javaprivate static transient Logger logger = LoggerFactory.getLogger(TriggerServiceImpl.class);logger.info(“全站静态化… start:{}”, start); logger.info(“全站静态化… end:{}, cost:{}”, end, end – start); log4j 和slf4j的比较        


SLF4J :JAVA简易日志门面(Simple Logging Facade for Java,缩写SLF4J)

他是一套包装Logging框架的接口程式,以外观模式实现。可在软件部署的时候决定要使用的 Logging 框架,目前主要支援的有Java Logging API、log4j及logback等框架。以MIT 授权方式发布。

SLF4J 作者就是 log4j 的作者 Ceki G&uuml;lc&uuml;,他宣称 SLF4J 比 log4j 更有效率,比 Apache Commons Logging (JCL) 简单、稳定。

SLF4J 与 log4j 的比较:

1、log4j 提供 TRACE, DEBUG, INFO, WARN, ERROR 及 FATAL 六种纪录等级,但是 SLF4J 认为 ERROR 与 FATAL 并没有实质上的差别,所以拿掉了 FATAL 等级,只剩下其他五种。

2、大部分人在程序里面会去写logger.error(exception),其实这个时候log4j回去把这个exception tostring。真正的写法应该是logger(message.exception);而slf4j就不会使得程序员犯这个错误。

3、log4j间接的在鼓励程序员使用string相加的写法,而slf4j就不会有这个问题 ,你可以使用logger.error(“{} is+serviceid”,serviceid);

4、使用slf4j可以方便的使用其提供的各种集体的实现的jar。(类似commons-logger)

5、从commons–logger和log4j merge非常方便,slf4j也提供了一个swing的tools来帮助大家完成这个merge。

6、提供字串内容替换的功能,会比较有效率,说明如下:

?

12345678910 //传统的字符串产生方式,如果没有要记录Debug等级的信息,就会浪费时间在产生不必要的信息上logger.debug("There are now "+ count + " user accounts: "+ userAccountList); //为了避免上述问题,我们可以先检查是不是开启了Debug信息记录功能,只是程序的编码会比较复杂if(logger.isDebugEnabled()) {    logger.debug("There are now "+ count + " user accounts: "+ userAccountList);} //如果Debug等级没有开启,则不会产生不必要的字符串,同时也能保持程序编码的简洁logger.debug("There are now {} user accounts: {}", count, userAccountList);

7、SLF4J 只支持 MDC,不支持 NDC。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,997
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,511
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,356
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,139
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848