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
   ```
   
   
![Image](https://github.com/user-attachments/assets/815bf1ed-4478-4cbc-945e-aa43f9667940)
   
   ## 测试
   ``` 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?
   
   
![Image](https://github.com/user-attachments/assets/1561e48a-e6cd-4704-9ec0-36bbd90a12fe)
   
   ### 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]

Reply via email to