程序登录到控制台时会发生什么?

时间:2019-06-05 20:09:44

标签: java logging dropwizard

我正在运行一个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

从本质上讲,不使用控制台时,是否有损于登录控制台?它的形式是什么?

2 个答案:

答案 0 :(得分:1)

除非您要记录数百万条记录,否则记录不会对性能产生明显影响。

登录到控制台要比登录到文件更短暂-日志消息不会保存在任何地方。这样就不可能跟踪错误并排除故障,特别是在生产中。

答案 1 :(得分:0)

如果在Docker之类的容器中运行应用程序,则登录到STDOUT可能会很有用。 Docker可以在使用docker logs运行的任何容器中提取任何写入STDOUT和STDERR的内容,也可以重定向到其他服务器。如果应用程序将写入容器本地运行的日志文件,那么从容器外部访问该文件将更加困难。