gpt4 book ai didi

java - 多个appender log4j 性能

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:00 24 4
gpt4 key购买 nike

我正在使用 slf4j,log4j 的实现来记录我的 java 项目。目前我有 2 个附加程序,FILE 和 CONSOLE。

我想知道以下两件事:

  • 使用多个附加程序(在本例中为 CONSOLE 和 FILE)是否会导致日志记录出现性能问题?

  • 当有人想要同时使用 CONSOLE 和 FILE 附加程序时?

最佳答案

写入 CONSOLE 和 FILE 时,您正在写入 2 个不同的流。在多线程系统中,性能影响不会太大,但对于大容量,它仍然很明显。

来自log4J manual

The typical cost of actually logging is about 100 to 300 microseconds.

这包括构建语句并编写它,但如果您大量记录日志,则编写所花费的时间仍然很明显。

但是您需要问一个更基本的问题 - 您为什么要登录?

  1. 跟踪正在发生的事情
  2. 找出错误

控制台对于第一部分没有用,因为日志没有保存在任何地方。如果日志记录很重,并且所有日志都发送到CONSOLE,那么日志量会让控制台上的输出不可读,所以目的2也失败了。

在我看来,使用less之类的东西从文件中读取日志更有意义。作为一般做法,您记录到文件,如果必须,只将错误消息记录到控制台,因为一些错误消息将表明出现问题,而控制台上的数百条日志行只是垃圾,因为当控制台刷新如此之快时,您无法理解它。

TL-DR

成本可能不多,但是当您没有获得额外优势时为什么要承担额外成本呢?

阅读这些有关 log 4j 性能的链接。 log4j-performance log4j-decreased application performance log4j appenders

关于java - 多个appender log4j 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17545519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com