Log4j2 Syslog Appenderを使用しようとしていますが、メッセージは送信されません。 WireSharkを使用して環境を監視していますが、メッセージは検出されません。 Windows 7で動作しています。Java Log4j2 Syslog Appenderはメッセージを送信しません
私がKiwi syslogを使用すると、メッセージはうまく届きます。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Syslog name="RFC5424" format="RFC5424" host="localhost" port="514"
protocol="UDP" appName="MyApp" includeMDC="true"
facility="USER" enterpriseNumber="18060" newLine="true"
messageId="Audit" mdcId="mdc" id="App"
connectTimeoutMillis="1000" reconnectionDelayMillis="5000">
<LoggerFields>
<KeyValuePair key="thread" value="%t"/>
<KeyValuePair key="priority" value="%p"/>
<KeyValuePair key="category" value="%c"/>
<KeyValuePair key="exception" value="%ex"/>
<KeyValuePair key="message" value="%m"/>
</LoggerFields>
</Syslog>
</Appenders>
<Loggers>
<Logger name="com.mycorp" level="info" />
<Root level="info">
<AppenderRef ref="RFC5424"/>
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
はここに私のJavaコードです:
は、ここに私のlog4j2 XML設定ファイルで正常に動作しますアペンダ
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");
}
}
コンソールが、syslogがありません。
お知らせください。
はERR-出力を確認してください。私はあなたのlog4j.xmlが壊れていると思いますので、デフォルトの設定が使用されています。アペンダーは、属性を持つ「アペンダー」タグを使用して構成されます。 – Fildor
@Fildor、私はコンソール出力を見ていますが、エラーはありません。 –
@Fildor、質問を更新しました。どうぞご覧ください。 –