【发布时间】:2016-06-19 14:45:34
【问题描述】:
我正在尝试使用 Log4j 2.6.1 来通过 Syslog 发送日志消息。 我可以将它们打印到文件或控制台,但我似乎无法在我的 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>
课程如下:
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");
}
}
请指教我做错了什么?
【问题讨论】:
标签: java logging configuration log4j2