iloveeyjafjalla opened a new issue, #11400:
URL: https://github.com/apache/rocketmq/issues/11400

   ### Before Creating the Bug Report
   
   - [x] I found a bug, not just asking a question, which should be created in 
[GitHub Discussions](https://github.com/apache/rocketmq/discussions).
   - [x] I have searched the [GitHub 
Issues](https://github.com/apache/rocketmq/issues) and [GitHub 
Discussions](https://github.com/apache/rocketmq/discussions) of this repository 
and believe that this is not a duplicate.
   - [x] I have confirmed that this bug belongs to the current repository, not 
other repositories of RocketMQ.
   
   ### Runtime platform environment
   
   OS: any (proxy module, admin gRPC surface, shipped logback configuration)
   
   ### RocketMQ version
   
   branch: develop
   Git commit id: a7edeecfb (2026-10-13; the files are unchanged by that commit)
   
   ### JDK Version
   
   Compiler: Temurin 1.8.0_504 (target 1.8, same as CI)
   
   ### Describe the Bug
   
   `ChangeLogLevel` reports success but changes nothing that is logged, because 
it only sets the root logger's level while the
   shipped logging configuration pins every component logger.
   
   The handler:
   
   ```java
   loggerContext.getLogger( ... Logger.ROOT_LOGGER_NAME).setLevel(logbackLevel);
   remark = "log level changed to " + logbackLevel;
   ```
   
   The configuration the distribution ships 
(`proxy/src/main/resources/rmq.proxy.logback.xml`, installed as
   `conf/rmq.proxy.logback.xml` and selected by `mqproxy` through 
`-Drmq.logback.configurationFile`) gives **20 component
   loggers their own level with `additivity="false"`**, for example:
   
   ```xml
   <logger name="RocketmqProxy" additivity="false" level="INFO">
   <logger name="RocketmqBroker" additivity="false" level="INFO">
   ...
   ```
   
   In Logback a logger with an explicit level does not inherit the root 
logger's level, so after
   `ChangeLogLevel(DEBUG)` every `Rocketmq*` logger keeps logging at `INFO`: 
the RPC answers
   "log level changed to DEBUG" while the operator sees no additional log line 
— the on-demand troubleshooting switch the
   proto documents ("dynamically change the runtime log level of the server 
without a restart") has no effect on the logs they
   are trying to raise.
   
   ### Steps to Reproduce
   
   1. Start the proxy as the distribution does (so the shipped 
`rmq.proxy.logback.xml` is in effect).
   2. Call `ChangeLogLevel` with `DEBUG`.
   3. The response says the level changed, but no `DEBUG` line from any 
`org.apache.rocketmq.*` logger appears, because the
      component loggers still carry their configured `INFO` level.
   
   ### Expected behavior
   
   The runtime change reaches the loggers whose level the configuration pinned 
(those are precisely the loggers with an
   explicit level), so the server's log verbosity actually changes.
   
   ### Actual behavior
   
   Only the root logger is changed; the application loggers keep the configured 
level, and the RPC still reports success.
   
   ### Additional context
   
   Fix: apply the requested level to the root logger **and** to the loggers 
with an explicit level. If root-only behaviour is
   preferred, the boundary belongs in `docs/proxy-admin.md` §8 instead — either 
way the current state (a documented switch that
   silently does nothing with the shipped configuration) is not one of the two.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to