gpt4 book ai didi

java - 尝试调试 logback syslog appender 不更新 syslog 的问题

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:11 25 4
gpt4 key购买 nike

我正在使用 logback 来更新 syslog,这就是我配置 appender 的方式:

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>localhost</syslogHost>
<facility>LOCAL0</facility>
<suffixPattern>[%thread] %logger %msg</suffixPattern>
</appender>

我更新了 rsyslog.conf 以监听 UDP 事件,取消了以下行的注释:

# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

conf 更改后重新启动 syslog 守护进程。

在我所有的测试盒上,它似乎工作得很好!但是,我的进程没有更新系统 syslog 上的一个(其他东西正在更新它就好了),我想知道如何调试这个问题?想到什么我应该调查的吗?

感谢任何想法

最佳答案

当然。按顺序松散地尝试这 4 个测试:

<强>1。测试 logback:最明显的一个:添加 FileAppender作为第二个附加程序并确保事件出现在那里。您的帖子暗示“它”在开发中有效,但我不确定它是 logback 还是 appender,并且配置片段没有 appender-ref 部分将事件发送到 系统日志

如果您的 FileAppender 没有收到任何东西,这是一个应用程序/环境问题,或者此服务器没有生成提供给附加程序的事件。

<强>2。确认正在生成消息:假设 FileAppender 收到消息但 syslog 没有收到消息,运行:

tcpdump -n -i lo -X -s 1500

.. to output the full payload of UDP packets on lo. Make your app generate a log message. You should see at least 1 packet destined to 127.0.0.1:514. If you don't, it's the sender. If you do, it's the rsyslog config.

3. Confirm that rsyslog is bound to port 514:

lsof -i :514

or if you don't have lsof and are sure that another process isn't bound to 514:

netstat -ln | grep 514

<强>4。查看 rsyslog 收到的内容:如果事件正在发送到端口 514,则在停止实时 rsyslogd 后,以 Debug模式重新启动它并附加到终端:

/etc/init.d/rsyslog stop
rsyslogd -d

您应该会看到事件到达。如果这些都没有发现问题所在,那就太离谱了。我有一个工作 logback config在已知良好的 J2EE 和系统日志环境中。不过,希望上面的事情之一能够做到这一点。

关于java - 尝试调试 logback syslog appender 不更新 syslog 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com