consoleSource和consoleLogLevel如何与server.xml中的日志设置相关联?

问题描述 投票:2回答:1

https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/rwlp_logging.html上的文档列出了以下配置代码段,用于配置以JSON格式转到控制台的日志(当Liberty在Linux容器中运行时,如kubernetes pod中的一个有用配置):

com.ibm.ws.logging.console.format=json
com.ibm.ws.logging.console.log.level=info
com.ibm.ws.logging.console.source=message,trace,accessLog,ffdc,audit

但是,我注意到当我增加server.xml中的日志级别(比如说FINER以启用跟踪)时,跟踪消息也会发送到控制台。我假设它是因为源配置为从跟踪中拾取消息,但我不明白是否/如何与consoleLogLevel设置交互。

为什么要指定一个com.ibm.ws.logging.console.log.level,如果它只包含消息和跟踪日志文件中的所有内容?

websphere-liberty open-liberty
1个回答
2
投票

com.ibm.ws.logging.console.source bootstrap属性控制控制台处理程序将订阅的源。这意味着,如果traceSpecification启用了任何跟踪(通常为FINE / FINER / FINEST级别),则该内容将由控制台处理程序使用,并作为JSON输出到控制台。

所以,设定......

com.ibm.ws.logging.console.source=message,trace,accessLog,ffdc,audit

表示控制台处理程序将接收由系统生成的任何日志,跟踪,访问日志,ffdc和审核事件。

如果指定了com.ibm.ws.logging.console.log.level,它将控制控制台处理程序筛选出哪些日志事件。通过设置com.ibm.ws.logging.console.log.level=WARNING,您将不会在控制台输出中看到INFO级别消息,除非您还在server.xml中明确设置了consoleLogLevel=info

请注意,在server.xml中的<logging>元素中显式设置的日志记录设置(在配置管理器准备就绪时处理)将覆盖使用环境变量或bootstrap.properties文件的任何配置集(在服务器启动过程中很早就会处理) )。实际上,这意味着您应该使用bootstrap.properties或环境变量进行日志记录配置,并且只需使用server.xml文件中的logging元素来指定在服务器运行时要覆盖的内容。

© www.soinside.com 2019 - 2024. All rights reserved.