如何阻止JBoss 5将日志写入/var/log/messages?
解决JBoss 5日志同步写入/var/log/messages的问题
问题根源
你的systemd服务仅将标准错误重定向到/dev/null,但标准输出仍会被systemd捕获,进而通过journald转发到syslog(即/var/log/messages)。而JBoss本身已经在写入server/default/log/server.log,导致日志重复记录。
修复步骤
方法1:让JBoss完全自行处理日志
编辑你的JBoss systemd服务文件(通常路径为/etc/systemd/system/jboss.service),在[Service]段添加以下配置,阻止systemd捕获服务输出:
StandardOutput=null StandardError=null
方法2:将所有输出统一写入JBoss日志文件
如果希望把标准输出和错误也追加到server.log,替代原有的错误输出丢弃配置:
- 修改
ExecStart命令,将所有输出重定向到JBoss日志:ExecStart=/opt/jboss-5.1.0.GA/bin/run.sh -c main1 -g MVRPartition -b 0.0.0.0 -u 224.0.0.114 -Djboss.messaging.ServerPeerID=1 >> /opt/jboss-5.1.0.GA/server/default/log/server.log 2>&1 - 在
[Service]段添加配置,禁止systemd转发日志到syslog:SyslogLevelPrefix=no LogLevelMax=off
生效配置
保存文件后,执行以下命令重新加载systemd并重启服务:
systemctl daemon-reload systemctl restart jboss.service
验证
检查/var/log/messages确认不再出现JBoss日志,同时server/default/log/server.log正常记录即可。
内容的提问来源于stack exchange,提问作者Hussain Akbar
相关产品推荐
相关产品推荐

