Java Log4j2 Syslog Appender

标签 java logging configuration log4j2

我正在尝试使用 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/

相关文章:

logging - 如何配置 kotlin-logging 记录器

java - Wildfly 增加线程数

node.js - 从 JSON 模块加载 Nest.js 应用程序的端口号

java - 两次判断蓝牙是否开启有什么意义

java - JDOM2 和 XPath

java - 升级到 Jetty 7 时日志配置丢失

java - 漂亮地登录 jooq

java - 使用 hibernate envers 实现分页

java.lang.IllegalStateException : InputStream has already been read - do not use InputStreamResource if a stream needs to be read multiple times 错误

xcode - 在配置设置中使用 .xcconfig 文件的路径