我正在运行一个Java服务器应用程序,该应用程序使用Logback作为其主要日志记录库。最近,我要求开发人员删除他们为非开发环境添加的额外控制台日志,并且当他们问我为什么意识到我对此没有充分的理由时。
我认为额外的日志记录会导致更多的I / O操作,但是还会增加内存使用量吗?在stdout中写入的缓冲区有多大?何时清除?
我们的标准日志记录到一个文件,我们可以查看该文件,也可以将其通过管道传输到监视工具中。该应用程序是通过自动化流程进行部署的,并且没有头,因此通常没有人在VM上看东西。
示例日志附加程序(Dropwizard configurations)
logging:
level: INFO
appenders:
- type: file
currentLogFilename: /var/log/myapplication.log
archive: true
archivedFileCount: 5
- type: console
target: stdout
从本质上讲,不使用控制台时,是否有损于登录控制台?它的形式是什么?
答案 0 :(得分:1)
除非您要记录数百万条记录,否则记录不会对性能产生明显影响。
登录到控制台要比登录到文件更短暂-日志消息不会保存在任何地方。这样就不可能跟踪错误并排除故障,特别是在生产中。
答案 1 :(得分:0)
如果在Docker之类的容器中运行应用程序,则登录到STDOUT可能会很有用。 Docker可以在使用docker logs
运行的任何容器中提取任何写入STDOUT和STDERR的内容,也可以重定向到其他服务器。如果应用程序将写入容器本地运行的日志文件,那么从容器外部访问该文件将更加困难。