我正在运行一个 java 服务器应用程序,它使用 Logback 作为其主要日志记录库。最近,我要求一位开发人员删除他们为非开发环境添加的额外控制台日志记录,当他们问我为什么意识到我对此没有充分的理由时。
我认为额外的日志记录会导致更多的 I/O 操作,但它是否也会增加更多的内存使用量?它在标准输出中写入的缓冲区有多大?何时清除?
我们的标准日志记录是一个我们可以查看的文件,也可以将其通过管道传输到监控工具中。该应用程序是通过自动化流程部署的,并且是 headless 的,因此通常没有人在虚拟机上查看事物。
示例日志附加程序 ( Dropwizard configurations )
logging:
level: INFO
appenders:
- type: file
currentLogFilename: /var/log/myapplication.log
archive: true
archivedFileCount: 5
- type: console
target: stdout
本质上,在不使用控制台时登录到控制台是否会产生不利影响?这会采取什么形式?
最佳答案
除非您要记录数百万条记录,否则日志记录不会对性能产生明显影响。
记录到控制台比记录到文件更短暂——日志消息不会保存在任何地方。这使得追踪错误和解决问题变得不可能,尤其是在生产中。
关于java - 当程序登录到控制台时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56467321/