我一直在寻找这个问题的答案。在我工作的公司中,我们有一个高度并发的系统,但最近发现 Web 服务器 (Jboss) 的日志配置包括控制台附加程序。应用程序记录器也将进入控制台。我们开始在日志记录操作上遇到死锁,其中大部分是控制台附加程序(我知道 Log4j 有一个非常讨厌的 sincronization 错误,但我几乎可以肯定我们在相关代码中没有任何 sincronization 方法)。另一件事是,IT 人员定期使用 putty 控制台访问控制台,暂停以检查日志,然后关闭 putty 窗口。
控制台附加程序以及在生产环境中使用控制台进行日志记录和监控是否可能导致系统出现死锁和竞争条件?我的理解是,控制台应该只在使用 IDE 的开发阶段使用,因为在高度并发的系统上,它将是另一种资源(由于无缓冲的 I/O 而变得很慢)受到竞争条件的影响。
谢谢。