繁体   English   中英

log4j2 SyslogAppender 不写入日志

[英]log4j2 SyslogAppender not writing to logs

我知道以前有人问过这类问题,但我找不到合适的答案。 我正在使用 syslog appender 将我的 java 应用程序日志发送到 Syslog,但它不起作用。 我的 log4j2.xml 文件是:

?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
    <Appenders>
        <Console name="LogToConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <Syslog name="syslogAppender" format="RFC5424" host="localhost" newLine="true" port="514" protocol="UDP" appName="MyApp" 
        facility="USER" messageId="Audit" mdcId="mdc" includeMDC="true" id="SmartTerminal-EventScheduler"
        connectTimeoutMillis="1000" reconnectionDelayMillis="5000"/>
    </Appenders>
    <Loggers>
        <Logger name="com.mycorp" level="info" />
        <Root level="error">
            <AppenderRef ref="syslogAppender"/>
            <AppenderRef ref="LogToConsole" />
        </Root>
    </Loggers>
</Configuration>

这是我的 /etc/rsyslog.conf 文件:

#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

当我检查 /var/log/messages 时,我看不到任何日志。 类似地,我尝试检查 /var/log/syslog 和 /var/log/user.log 但在那里找不到任何日志。 我不知道我做错了什么。

谢谢

在上面的配置文件 /etc/rsyslog.conf 中,rsyslog 服务器没有像其评论的那样监听 tcp。

取消注释上述配置并重新启动 rsyslog 服务应该可以解决问题。

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM