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

标签 java logging dropwizard

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

相关文章:

java - java 数组和 Action 监听器

python - Django:如何将每个应用程序记录到单独的文件中

java - 使用 Dropwizard 实现强参数

java - 如何配置 DropWizard 来解释请求失败?

java - 从 Hibernate 中的 @Query 获取空结果

java - Java中如何获取金币数量?

java - Micronaut 中的 DI 错误出现在运行时而不是编译时?

azure - 删除 Log Analytics 工作区是否安全

java - 如何在WebSphere 7中捕获Oracle JDBC PL/SQL函数调用的参数值

java - 如何将 Authenticator 添加到 dropwizard 应用程序