日志框架适配和运行时管理
适配 Dubbo 中的日志框架,并支持在运行时动态切换使用的日志框架
功能描述
日志框架适配。从 2.2.1
开始,dubbo 内置了对 log4j、slf4j、jcl 和 jdk 日志框架的适配。
日志框架运行时管理,从 3.0.10
开始,dubbo-qos 运行时管理支持查询日志配置,并动态修改使用的日志框架和日志级别。
dubbo-qos 修改的日志配置不会持久化存储,应用程序重启后将失效。
使用场景
使用方法
日志框架适配
可以通过以下方式显式配置日志输出策略
1. 命令行
java -Ddubbo.application.logger=log4j
2. 在 dubbo.properties
中指定
dubbo.application.logger=log4j
3. 在 dubbo.xml
中配置
<dubbo:application logger="log4j" />
对于自定义扩展,请参考 日志适配器扩展
日志框架运行时管理
1. 查询日志配置
命令:loggerInfo
示例
> telnet 127.0.0.1 22222
> loggerInfo
输出
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
___ __ __ ___ ___ ____
/ _ \ / / / // _ ) / _ ) / __ \
/ // // /_/ // _ |/ _ |/ /_/ /
/____/ \____//____//____/ \____/
dubbo>loggerInfo
Available logger adapters: [jcl, jdk, log4j, slf4j]. Current Adapter: [log4j]. Log level: INFO
2. 修改日志级别
命令:switchLogLevel {level}
level: ALL
, TRACE
, DEBUG
, INFO
, WARN
, ERROR
, OFF
示例
> telnet 127.0.0.1 22222
> switchLogLevel WARN
输出
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
___ __ __ ___ ___ ____
/ _ \ / / / // _ ) / _ ) / __ \
/ // // /_/ // _ |/ _ |/ /_/ /
/____/ \____//____//____/ \____/
dubbo>loggerInfo
Available logger adapters: [jcl, jdk, log4j, slf4j]. Current Adapter: [log4j]. Log level: INFO
dubbo>switchLogLevel WARN
OK
dubbo>loggerInfo
Available logger adapters: [jcl, jdk, log4j, slf4j]. Current Adapter: [log4j]. Log level: WARN```
3. 修改日志输出框架
命令:switchLogger {loggerAdapterName}
loggerAdapterName: slf4j
, jcl
, log4j
, jdk
, log4j2
示例
> telnet 127.0.0.1 22222
> switchLogger slf4j
输出
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
___ __ __ ___ ___ ____
/ _ \ / / / // _ ) / _ ) / __ \
/ // // /_/ // _ |/ _ |/ /_/ /
/____/ \____//____//____/ \____/
dubbo>loggerInfo
Available logger adapters: [jcl, slf4j, log4j, jdk]. Current Adapter: [log4j]. Log level: INFO
dubbo>switchLogger slf4j
OK
dubbo>loggerInfo
Available logger adapters: [jcl, slf4j, log4j, jdk]. Current Adapter: [slf4j]. Log level: INFO
上次修改时间:2023 年 1 月 2 日:增强 en 文档 (#1798) (95a9f4f6c1c)