- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我们有一个高速、大容量的应用程序,它正在使用 log4j。通常我们一直在使用 SyslogAppender,认为它是重量最轻、速度最快的附加程序。但是我们看到 SYSLOG 在高容量下的 CPU 使用率很高(因为 SYSLOG conf 中的过滤器规则)。
我们可能想切换到使用 FileAppender。问题是我们是否要将它与 log4j AsyncAppender 结合使用以消除由于刷新(强制)到磁盘而导致的任何暂停?
(该应用程序对延迟非常敏感,因此我们希望将附加程序可能添加的任何延迟最小化。)此外 - 我不确定 SyslogAppender 是否真的比 FileAppender 更快(但自从我开始以来就是这样).
如有任何想法,我们将不胜感激。
最佳答案
我肯定会使用 AsyncAppender。
我已经看到低延迟应用程序几乎停止使用标准文件附加程序。不可否认,他们在共享硬件和磁盘上使用 (OS)VM,因此一个 VM 可以独占磁盘 IO,并在尝试记录时让其他 VM 停止。
您还可以考虑记录到 JMS 和其他异步策略。
关于java - Log4j AsyncAppender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350847/
我目前正在学习 Log4j,我正在使用的书正在解释 AsyncAppenders。我将缓冲区大小设置为 128 (LoggingEvents)。书中解释说,在达到缓冲区大小之前不会打印任何消息,但是无
我们有一个高速、大容量的应用程序,它正在使用 log4j。通常我们一直在使用 SyslogAppender,认为它是重量最轻、速度最快的附加程序。但是我们看到 SYSLOG 在高容量下的 CPU 使用
我通过在其中添加自己的 SUMMARY_APPENDER 创建了一个 AsyncAppender。 ASYNC Appender 如下所示 2 --> 我创建了另一个 SUMMARY
我正在编写一个 JMH 基准来测试 logback 的 AsyncAppender 的性能。 作为起点,我查看了 log4j2 的性能测试,但看起来它们不是端到端的测量。比如这里测试Log4j2 As
我在我的应用程序中使用 Log4J AsyncAppender,我想知道,当我的应用程序完成时,AsyncAppender 的线程会发生什么?我应该手动终止线程还是可以忘记它并退出我的应用程序而不用担
我在这方面遇到了一些麻烦,尽管我已经搜索了答案,但还是找不到。 为了使用 AsyncAppender,我看到了很多不同的 log4j 配置,无论如何,它们都与 .properties 配置文件无关。
如何在 log4j 中使用 AsyncAppender 将日志消息写入 Web 服务?我应该创建自己的 Appender 来扩展 AsyncAppender 还是只将自定义 appender 附加到
我正在使用附加到 AsyncAppender 的 FileAppender 的本地变体。我正在为每个写入线程创建一个 FileAppender。我注意到当我的线程停止时(在 run() 的 while
Logback 支持对类使用异步附加程序ch.qos.Logback.classic.AsyncAppender 根据文档,这将减少应用程序的日志记录开销。那么,为什么不直接将其设置为默认值呢?使用同
假设我使用 logger.info 记录两个事件,其中 logger 声明为 private static Logger logger = LoggerFactory.getLogger(SomeCl
我正在尝试将 AsyncLogger 添加到 log4j.properties。我找到了将 AsyncLogger 添加到 lo4j.xml 文件而不是 log4j.properties 的示例。你能
我现在使用的堆栈是: log4j2 rc1 spring 3.2 核心和网络 tomcat 7.0.47 Java 1.6.0_45 Windows 7 我没有能力更改 tomcat 版本或 java
我发现 logback 异步日志提供的性能比同步日志差。详情如下。 我可能遗漏了什么? 测试类: import org.slf4j.Logger; import org.slf4j.LoggerFac
当使用 Logback 的 AsyncAppender 时,消息会先排队再发送被写入最终目的地(取决于哪个 Appender你用 AsyncAppender 包装)。到目前为止,一切都很好。 当我的程
阅读http://blog.takipi.com/how-to-instantly-improve-your-java-logging-with-7-logback-tweaks/ ,建议FileAp
我了解 AsyncAppender 在单独的线程中执行附加工作。他们为此使用 ArrayBlockingQueue。 与 AsyncLogger 使用 LMAX 中断库将日志事件从一个应用程序线程移动
我已将 log4j2.properties 定义为 ... appender.async.type = Async appender.async.name = async
我需要通过 logback 在 java 中组织异步日志记录。使用了 AsyncAppender 类,它有一个名为 queueSize 的参数。当达到队列的阈值时,该参数会影响 INFO 级别和更低级
在 log4net 版本 1.2.11 中有 log4net.Appender.AsyncAppender 类。 我的以下 log4net 配置适用于 1.2.11 版本的 log4net:
我在线程“主”java.lang.ExceptionInInitializerError 中收到错误“异常”由以下原因引起:org.apache.logging.log4j.core.config.C
我是一名优秀的程序员,十分优秀!