Logging framework runtime management

Dynamically switch the log framework used when running in Dubbo

Logging framework runtime management

Starting from 3.0.10, dubbo-qos runtime control supports querying log configuration and dynamically modifying the used log framework and log level.

Note: The log configuration modified by dubbo-qos is not stored persistently and will become invalid after the application is restarted.

1. Query log configuration

Command: loggerInfo

Example:

> telnet 127.0.0.1 22222
> loggerInfo

output:

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. Modify log level

Command: switchLogLevel {level}

level: ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF

Example:

> telnet 127.0.0.1 22222
> switchLogLevel WARN

output:

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. Modify the log output framework

Command: switchLogger {loggerAdapterName}

loggerAdapterName: slf4j, jcl, log4j, jdk, log4j2

Example:

> telnet 127.0.0.1 22222
> switchLogger slf4j

output:

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
Last modified January 2, 2023: Enhance en docs (#1798) (95a9f4f6c1c)