selway opened a new issue, #9519: URL: https://github.com/apache/rocketmq/issues/9519
### 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 centos7 ### RocketMQ version 5.3.3 ### JDK Version open-jdk 17.0.0.1 ### Describe the Bug 已修改了日志配置文件中的记录位置并且启动脚本也修改了`-Drmq.logback.configurationFile`为定义的日志配置,但是仍有一部分日志记录到了`${user}.{home}` ### Steps to Reproduce ## namesrv部分 ``` bash # 备份默认日志配置 cp /usr/local/rocketmq/conf/rmq.namesrv.logback.xml /usr/local/rocketmq/conf/bk-rmq.namesrv.logback.xml # 编辑日志配置 vi /usr/local/rocketmq/conf/rmq.namesrv.logback.xml # 修改所有配置,附件有完整配置,github不支持xml所为txt上传 [rmq.namesrv.logback.txt](https://github.com/user-attachments/files/21049469/rmq.namesrv.logback.txt) <!-- 修改所有appender的file属性和rollingPolicy的fileNamePattern属性,替换为独立路径 /data/rocketmq/logs/***.log --> # 创建配置文件 cat > /usr/local/rocketmq/conf/namesrv.properties << EOF # 开启内置controller enableControllerInNamesrv=true # DLedger Raft Group名字 controllerDLegerGroup=OpVrf # DLedgerGroup内节点的地址信息 controllerDLegerPeers=n0-192.168.207.37:9877;n1-192.168.207.38:9877;n2-192.168.207.39:9877 # 节点 id,必须属于 controllerDLegerPeers 中的一个;同 Group 内各个节点要唯一。 controllerDLegerSelfId=n0 # controller日志存储位置,非常重要不能删除 controllerStorePath=/data/rocketmq/namesrv # 存储路径 storePathRootDir=/data/rocketmq/namesrv EOF ``` ## broker部署 ``` bash # 复制日志配置 cp /usr/local/rocketmq/conf/rmq.broker.logback.xml /usr/local/rocketmq/conf/rmq.broker-c-m.logback.xml vi /usr/local/rocketmq/conf/rmq.broker-a-m.logback.xml # 附件有完整内容,github不支持xml所为txt上传 # <!-- 修改所有appender的file属性和rollingPolicy的fileNamePattern属性,替换为独立路径 /data/rocketmq/logs/broker-a-m/***.log --> [rmq.broker-a-m.logback.txt](https://github.com/user-attachments/files/21049468/rmq.broker-a-m.logback.txt) # 配置 cat > /usr/local/rocketmq/conf/broker-a-m.properties << EOF # Broker名称(主从必须一致) brokerName=broker-a # Broker ID(0表示主,>0表示从) brokerId=0 # Broker IP(必填,否则可能绑定错误IP) brokerIP1=192.168.207.37 # Broker角色 brokerRole=ASYNC_MASTER # 监听端口 listenPort=10911 # 集群名称 brokerClusterName=RocketMQCluster # 存储路径 storePathRootDir=/data/rocketmq/store/broker-a-m storePathCommitLog=/data/rocketmq/store/broker-a-m/commitlog storePathConsumeQueue=/data/rocketmq/store/broker-a-m/consumequeue storePathIndex=/data/rocketmq/store/broker-a-m/index storePathEpochFile=/data/rocketmq/store/broker-a-m/epoch # NameServer地址(集群模式) namesrvAddr=192.168.207.37:9876;192.168.207.38:9876;192.168.207.39:9876 # 开启Broker controller模式 enableControllerMode=true # contoller地址 controllerAddr=192.168.207.37:9877;192.168.207.38:9877;192.168.207.39:9877 # Broker和controller之间心跳超时时间,心跳超过该时间判断Broker不在线。 controllerHeartBeatTimeoutMills=30000 # 刷盘策略 flushDiskType=ASYNC_FLUSH # CommitLog文件大小(1GB) mapedFileSizeCommitLog=1073741824 # ConsumeQueue文件大小(30W条) mapedFileSizeConsumeQueue=300000 # 消息保留时间(小时) fileReservedTime=168 # 7天 # 删除时间点(凌晨4点) deleteWhen=04 # 定时刷盘间隔(毫秒,仅ASYNC_FLUSH有效) flushIntervalCommitLog=500 # 堆外内存缓存大小(MB) transientStorePoolSize=512 # 启用堆外内存缓存 useTransientStorePool=true # 发送线程池大小 sendMessageThreadPoolNums=8 # 拉取线程池大小 pullMessageThreadPoolNums=16 # 最大客户端连接数 maxClientConnection=10000 EOF ``` ## 修改mqbroker脚本支持传递日志配置参数 ``` bash # 备份原脚本 cp /usr/local/rocketmq/bin/mqbroker /usr/local/rocketmq/bin/mqbroker.bk # 打开编辑 vi /usr/local/rocketmq/bin/mqbroker # 把export ROCKETMQ_HOME行以下的部分修改为以下内容 # ========== 新增参数解析逻辑 ========== export ROCKETMQ_HOME # ======== 新增日志配置参数解析 ======== LOG_CONF="" other_args=" " enable_proxy=false while [ $# -gt 0 ]; do case $1 in --enable-proxy) enable_proxy=true shift ;; -c|--configFile) broker_config="$2" shift 2 ;; -l|--logConfig) LOG_CONF="$2" shift 2 ;; *) other_args=${other_args}" "${1} shift ;; esac done # ======== 设置默认日志配置 ======== if [ -z "$LOG_CONF" ]; then if [ "$enable_proxy" = true ]; then LOG_CONF="$ROCKETMQ_HOME/conf/rmq.proxy.logback.xml" else LOG_CONF="$ROCKETMQ_HOME/conf/rmq.broker.logback.xml" fi fi # ======== 验证配置文件存在 ======== if [ ! -f "$LOG_CONF" ]; then echo "WARNING: Logback config file not found: $LOG_CONF" >&2 echo "Using default configuration instead." >&2 fi # ======== 启动命令 ======== if [ "$enable_proxy" = true ]; then args_for_proxy=$other_args" -pm local" if [ "$broker_config" != "" ]; then args_for_proxy=${args_for_proxy}" -bc "${broker_config} fi sh ${ROCKETMQ_HOME}/bin/runbroker.sh \ -Drmq.logback.configurationFile="$LOG_CONF" \ org.apache.rocketmq.proxy.ProxyStartup ${args_for_proxy} else args_for_broker=$other_args if [ "$broker_config" != "" ]; then args_for_broker=${args_for_broker}" -c "${broker_config} fi sh ${ROCKETMQ_HOME}/bin/runbroker.sh \ -Drmq.logback.configurationFile="$LOG_CONF" \ org.apache.rocketmq.broker.BrokerStartup ${args_for_broker} fi ``` ## 启动 ``` bash # namvsrv nohup env JAVA_OPT_EXT="-Xms1g -Xmx1g -XX:MaxDirectMemorySize=1g" \ /usr/local/rocketmq/bin/mqnamesrv -c /usr/local/rocketmq/conf/namesrv.properties \ > /data/rocketmq/logs/namesrv.log 2> /data/rocketmq/logs/namesrv.error & # broker nohup env JAVA_OPT_EXT="-Xms2g -Xmx3g -XX:MaxDirectMemorySize=3g" \ bin/mqbroker -c /usr/local/rocketmq/conf/broker-c-m.properties \ -l /usr/local/rocketmq/conf/rmq.broker-a-m.logback.xm \ > /data/rocketmq/logs/broker-a-m.log 2> /data/rocketmq/logs/broker-a-m.error & # 查看进行引用配置 ps -axu|grep rocketmq ```  ## 测试 ``` bash /usr/local/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer ``` ## 查看日志位置 ``` bash ls -lsa /data/rocketmq/logs/broker-a-m/* ls -lsa /root/logs/rocketmqlogs/* ``` ### What Did You Expect to See? 所有日志在/data/rocketmq/logs/broker-a-m/和/data/rocketmq/logs/目录下 ### What Did You See Instead?  ### Additional Context 我不能完全确定是BUG,但我认为我已经做了所有需要的配置 -- 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]
