我正在尝试使用 Log4j 2.6.1 以便通过 Syslog 发送日志消息。 我可以将它们打印到文件或控制台,但我似乎无法在系统日志服务器中捕获它们,或者验证它们是否已被发送。
我使用的配置文件是基于我在网上找到的配置文件,我不确定是否需要使用 BSD Syslog 格式或 RFC 5424。
我在 Windows 服务器上运行(Syslog 服务器位于同一台计算机上)。
这是我的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Syslog name="syslogAppender" format="RFC5424" host="localhost" newLine="true" port="514" protocol="UDP" appName="MyApp"
facility="USER" messageId="Audit" mdcId="mdc" id="App"
connectTimeoutMillis="1000" reconnectionDelayMillis="5000"/>
</Appenders>
<Loggers>
<Logger name="com.mycorp" level="info" />
<Root level="error">
<AppenderRef ref="syslogAppender"/>
</Root>
</Loggers>
</Configuration>
这是类(class):
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import java.io.*;
import java.sql.SQLException;
public class SyslogLogger
{
private static final Logger LOG = LogManager.getLogger(SyslogLogger.class);
public static void main (String[] args)throws IOException,SQLException
{
LOG.error("testing ERROR level");
LOG.trace("exiting application");
}
}
请告诉我我做错了什么?
最佳答案
我建议为此在 Log4j 2 Jira 问题跟踪器上提交票证。您可能发现了一个错误。
关于Java Log4j2 Syslog Appender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37908451/