【问题标题】:log4j syslog remote serverlog4j syslog 远程服务器
【发布时间】:2014-03-25 15:21:21
【问题描述】:

我正在使用 spring 和 log4j,我想使用 SyslogAppender。这是我的配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
    xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="syslog" class="org.apache.log4j.net.SyslogAppender">
        <param name="Facility" value="LOCAL7" />
         <param name="FacilityPrinting" value="true"/>
        <param name="SyslogHost" value="xx.xx.xxx.xx" />
        <param name="Threshold" value="INFO" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{MMM dd HH:mm:ss} MYAPP: %-5p %m%n" />
        </layout>
    </appender>



    <root>
        <level value="INFO" />
        <appender-ref ref="syslog" />
    </root>


</log4j:configuration>

但是当我查看系统日志服务器时,它什么也没有显示,没有创建文件。我知道系统日志服务器可以正常工作,因为我从不同的服务器尝试过。尝试添加 syslog 端口,但没有成功

<param name="SyslogHost" value="xx.xx.xxx.xx:514" />

【问题讨论】:

    标签: java spring logging log4j


    【解决方案1】:

    检查您的系统日志是否正在接受来自远程主机的日志。 Syslog 通常侦听 514 端口(TCP 或 UDP)。大多数发行版默认禁用远程日志记录。

    检查:

    netstat -utn | grep :514
    

    【讨论】:

    • 它接受来自远程主机的日志。我可以看到具有不同主机 ip 的新文件夹。
    • logger -p local7.notice -n localhost "testing"
    • 抱歉,stackoverflow 只允许在 5 分钟内编辑 cmets。很难猜测出了什么问题。使用 'logger' 检查 syslog 是否正在侦听和使用消息:logger -p local7.notice -n PUT.IP.ADDR.HERE "testing" 如果有效,请将-Dlog4j.debug=true 添加到 java 命令行参数,看看会发生什么。前段时间我尝试过 SyslogAppender,但切换到普通的旧文件。 Syslogs 使 stactraces 不可读,并且一些消息在高负载下丢失。
    • 我建议“netstat -autn | grep :1514” - 在某些情况下 -s 是必要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多