slf4j与log4j全面了解
推荐使用SLF4J(Simple Logging Facade for Java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。
1、Slf4j优势
与使用apache commons-logging或直接使用log4j相比,SLF4J提供了一个名为参数化日志的高级特性,可以显著提高在配置为关闭日志的情况下的日志语句性能,
log.debug("Found {} records matching filter: '{}'", records, filter);//slf4j
log.debug("Found " + records + " records matching filter: '" + filter + "'");//log4j
可以看出SLF4J的优点有:更简略易读;在日志级别不够时,少了字符串拼接的开销,不会调用对象(records/filter)的toString方法。
Slf4j在1.6.0之后,更是支持了异常堆栈的打印,作为最后一个参数传入即可,基本满足了日志的常见打印场景。
log.error("Failed to format {}", s, e);
2、注意Logger间的继承关系
logger的继承是通过命名来实现的。
子logger会默认继承父logger的appender,将它们加入到自己的Appender中;除非加上了additivity="false",则不再继承父logger的appender。
子logger只在自己未定义输出级别的情况下,才会继承父logger的输出级别。
以上这篇slf4j与log4j全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
很详细的Log4j配置步骤
1. 配置文件 Log4J配置文件的基本格式如下: 复制代码 代码如下: #配置根Logger log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , - #配置日志信息输出目的地Appender log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 -
-
slf4j与log4j全面了解
推荐使用SLF4J(Simple Logging Facade for Java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统. 1.Slf4j优势 与使用apache commons-logging或直接使用log4j相比,SLF4J提供了一个名为参数化日志的高级特性,可以显著提高在配置为关闭日志的情况下的日志语句性能, log.debug("Found {} records matching filter: '{}'&qu
-
slf4j使用log4j的配置参数方式
目录 slf4j使用log4j的配置参数 slf4j 的 maven 配置如下 关于具体的配置 log4j.properties 日志级别 常用的输出位置 格式化输出 slf4j集成log4j小结 日志配置使用 Slf4j集成 log4j 为什么使用slf4j slf4j集成log4j所需jar包及maven配置 slf4j及log4j配置文件 slf4j集成log4j slf4j使用log4j的配置参数 slf4j,即简单日志门面(Simple Logging Facade for Java)
-
详解SSM框架下结合log4j、slf4j打印日志
本文主要介绍了详解SSM框架下结合log4j.slf4j打印日志,分享给大家,具体如下: 首先加入log4j和slf4j的jar包 <!-- 日志处理 <!-- slf4j日志包--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dep
-
Java中 SLF4J和Logback和Log4j和Logging的区别与联系
目录 前言 张家村 小张的设计 正交性 Log4j 最后 前言 Java帝国在诞生之初就提供了集合.线程.IO.网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略了一个重要的功能: 输出日志.对于这一点,IO大臣其实非常清楚, 日志是个很重要的东西, 因为程序运行起来以后, 基本上就是一个黑盒子,如果程序的行为和预料的不一致,那就是出现Bug了,如何去定位这个Bug 呢?臣民们能用的工具有两个,第一个就是单步调试,一步步地跟踪,查看代码中变量的值, 这种办法费时费
-
项目为什么引入log4j而不是logback代码
什么是slf4j SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志System. 为什么使用slf4j 上面已经介绍了slf4j,那么至于为什么使用它.Slf4j可以看成是接口,那么既然是接口,实现在哪里呢?实现就是基于你自己的系统需要引入什么日志.我这里使用了log4j作为slf4j的实现.
-
浅谈slf4j中的桥接器是如何运作的
阅读分析 slf4j 的日志源码,发现其中涵盖了许多知识点和优秀的设计,关键它们都是活生生的实践案例.写成系列文章与大家分享,欢迎持续关注. 前言 在日志框架 slf4j 中有一组项目,除了核心的 slf4j-api 之外,还有 slf4j-log4j12.slf4j-jdk14 等项目.这一类项目统称桥接器项目,针对不同的日志框架有不同的桥接器项目. 在使用 logback 日志框架时,并没有针对的桥接器,这是因为 logback 与 slf4j 是一个作者所写,在 logback 中直接实现
-
基于Spring + Spring MVC + Mybatis 高性能web构建实例详解
一直想写这篇文章,前段时间痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详细的配置,详细的注释,看起来应该很容易懂. 用最合适的技术去实现,并不断追求最佳实践.这就是架构之道. 希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法. 源码地址:https://github.com/Eliteams/quick4j 点击打开 源码地址:https://gi
-
使用IDEA配置Maven搭建开发框架ssm教程
一.配置Maven环境 1.下载Maven 下载链接http://maven.apache.org/download.cgi 2.下载完成解压压缩包并创建本地仓库文件夹 3.打开解压缩文件,配置本地仓库路径 4.配置Maven环境变量 5.在cmd中查看maven是否配置正确 在cmd中输入mvn -v命令查看 二.在IntelliJ IDEA中配置Maven 打开-File-Settings 三.新建maven JAVAWEB项目 1.打开-File-New-Project Next Next
-
springmvc整合freemarker配置的详细步骤
一.对应的导包(有些包是不必须的) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
SSM框架搭建图文教程(推荐)
好久就想着好好搭建一个ssm框架,自己以后用也方便吧,但是最近的事真的是很多,很多事情都没有去干,有时候自己会怀疑一下人生自己该不该去做程序员,我是一个没毕业的学生,找工作真的是四处碰壁,感觉自己好难混,一个暑假换了3个公司.我其实就想找一个公司能干自己想干的技术,能学到自己想学到的东西,可是我发现太难了,几乎没有这样的公司.所以说在你不是很牛逼的时候,人得适应公司,而不是公司适应你.第一个公司的一个老程序员和我去公司必须能吃上饭,能吃上饭再想其他的东西,而我是个90后,我明白我的性格,一遇到难
随机推荐
- AngularJS之ionic 框架下实现 Localstorage本地存储
- angularjs+bootstrap菜单的使用示例代码
- asp分页(自己整理的2个分页程序)
- 一个可以删除指定天数文件的vbs脚本
- VB.NET设置屏幕分辨率、颜色位数、刷新率 实例代码
- ASP.NET MVC5网站开发之实现数据存储层功能(三)
- php中动态修改ini配置
- Linux环境下php实现给网站截图的方法
- Android入门之TableLayout应用解析(二)
- PHP检测用户语言的方法
- 基于JSP的动态网站开发技术
- 浅谈Android Studio 3.0 的一些小变化
- C语言实现的阶乘,排列和组合实例
- ajax添加数据后如何在网页显示
- 虚拟主机重启代码
- 使用JSLint提高JS代码质量方法分享
- linux中高并发socket最大连接数的优化详解
- MYSQL administrator 使用
- 使用Django Form解决表单数据无法动态刷新的两种方法
- php cli 小技巧