gpt4 book ai didi

java - JBOSS 控制台日志记录,在生产环境中推荐吗?

转载 作者:行者123 更新时间:2023-11-29 05:48:24 25 4
gpt4 key购买 nike

我一直在寻找这方面的答案。在我工作的公司,我们有一个高度并发的系统,但最近发现 Web 服务器(Jboss)的日志记录配置包括 Console appender。应用程序记录器也将转到控制台。我们开始在日志记录操作上遇到死锁,其中大部分是控制台附加程序(我知道 Log4j 有一个非常讨厌的同步化错误,但我几乎可以肯定我们在相关代码中没有任何同步化方法)。另一件事是,IT 人员定期使用 Putty 控制台访问控制台,暂停检查日志,然后关闭 Putty 窗口。

控制台附加程序以及在生产环境中使用控制台进行日志记录和监控是否可能导致系统出现死锁和竞争条件?我的理解是,控制台应该仅在使用 IDE 的开发阶段使用,因为在高度并发的系统上,它将成为另一种资源(由于无缓冲的 I/O 而变慢)受竞争条件影响。

谢谢。

最佳答案

来自Best practices for Performance tuning JBoss Enterprise Application Platform 5 , 第 9 页

Turn off console logging in production

Turn down logging verbosity

Use asynchronous logging.

Wrap debug log statements with If(debugEnabled())

我强烈建议在生产中首先考虑和最后考虑,因为 Log4J 中的一个错误会在记录之前计算要记录的内容,即如果 MyClass#toString() 是一个繁重的操作,Log4J 将首先计算这个String 之前(是的,它会做繁重的操作),然后它会检查这个 String 是否必须被记录(非常糟糕,确实 =)。

另外,告诉IT人员在检查日志文件时使用less命令,以免阻塞文件,不要直接检查控制台=。此命令在 Linux 中有效,如果您的服务器在 Unix 环境中,命令将是 tail(基于@Toni 的评论)。


IMO,我认为官方的 JBoss 性能指南是停止在生产环境中使用控制台登录的最好证明(即使这仍然不能证明您的死锁问题)。

关于java - JBOSS 控制台日志记录,在生产环境中推荐吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950005/

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