加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Logback是否足够成熟以取代log4j?

发布时间:2020-12-14 05:41:54 所属栏目:Java 来源:网络整理
导读:我已经阅读了类似的问题,如 this和 this.但它们大约有四年了! 此外,我还阅读了this的logback页面,其中有一些非常好的信息,说明为什么选择logback over log4j. 我希望为具有以下技术堆栈的项目实现日志框架 – 春天 休眠 Maven Tomcat 休息 我已经决定使用sl
我已经阅读了类似的问题,如 this和 this.但它们大约有四年了!

此外,我还阅读了this的logback页面,其中有一些非常好的信息,说明为什么选择logback over log4j.

我希望为具有以下技术堆栈的项目实现日志框架 –

>春天
>休眠
> Maven
> Tomcat
>休息

我已经决定使用slf4j作为外观,所以这个问题是关于是否使用slf4j log4j或slf4j logback(我知道logback本身使用slf4j).

我正在寻找的是 –

>有没有人有过使用Logback的经验,证明它不像log4j那样成熟或高效?
>与多线程环境中的log4j相比,它是如何公平的?
>能够使用logback / log4j日志记录替换tomcat-default jul日志记录
>能够将日志记录配置合并到maven多模块项目的公共文件中
> Logback声称它比log4j快10倍,是否有人验证过该声明? (作为我研究的一部分,我计划运行一些测试以测量性能,并将发回我的结果)

编辑:我已经阅读了许多地方(下面的答案之一也说明了这一点)log4j已经死亡/已弃用.与此相反,log4j刚刚发布了其2.0版本的alpha version.所以我不买那个论点.

解决方法

LogBack成功登陆Log4J,它来自制作Log4J的作者. Log4J目前已被弃用.

以下是SLF4J / LogBack素数的示例:

Log4J(当前)

Object entry = new SomeObject();
logger.debug("The new entry is "+entry+".");

以下是执行的任务:

> Java在变量条目上调用toString方法以获取String文字表示. Java初始化堆中的空间以保存String对象.
> Java基于上面的String创建一个新的String,其中包含“新条目”和“.”. Java初始化空间以保存更新的String文字.
> Java将新构造的String对象作为输入参数传递给Log4J. Log4J检查当前日志记录级别是否为DEBUG及以上. (假设它在logging.xml描述符中设置为INFO)
> Log4J不会将字符串文字打印到日志中,因为日志记录级别设置为INFO. (因此,所有关于1-2的工作都被浪费了)

SLF4J / LogBack(新)

Object entry = new SomeObject();
logger.debug("The new entry is {}.",entry);

以下是执行的任务:

> Java传递String对象“新条目为{}.”并将对象条目作为输入参数传递给SLF4J. SLF4J检查当前日志记录级别是否为DEBUG及以上. (假设它在logging.xml描述符中设置为INFO)
> Log4J不会将字符串文字打印到日志中,因为日志记录级别设置为INFO.

http://www.slf4j.org/faq.html#logging_performance

能否用logback / log4j loggin替换tomcat-default jul日志?

Yes,use with SLF4J.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读