java - Log4j 不发送日志到 linux SYSLOG

标签 java log4j syslog

我想在我的 java 项目中实现 log4j。我将 jar 放在 lib 文件夹中并配置 log4j.properties 文件。日志成功显示在控制台中,但我无法在我的 kubuntu 的 SYSLOG 应用程序 (KSYSLOG) 中看到该日志。这是我的属性文件:

log4j.rootLogger=INFO, stdout, SYSLOG, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a SYSLOG
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.syslogHost=127.0.0.1
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.conversionPattern=%d{ISO8601} %-5p [%t] %c{2} %x - %m%n
log4j.appender.SYSLOG.Facility=LOCAL1

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/log/  log4j-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

此属性文件中有什么不正确或我做错了什么?

最佳答案

我在这个线程中找到了解决方案 Writing log data to syslog using log4j

我们必须添加

$ModLoad imudp
$UDPServerRun 514

到 rsyslog.conf 并重启 rsyslog

关于java - Log4j 不发送日志到 linux SYSLOG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31391241/

相关文章:

java - 图像按钮的Android问题

java - 如何在 Hadoop 中使用 CompressionCodec

syslog - 与系统日志消息格式混淆

solaris - 如何停止系统日志消息以在 Solaris 上写入控制台

java - 使用 log4j 进行日志记录的嵌入式 Tomcat

c - 如何将 __FUNCTION__ 添加到系统日志中

java - 如何在java中删除MySQL数据库中选中的记录(行)

java - Android 布局预览器在添加自定义 LinearLayout 时抛出错误

java - 日志记录异常问题

java - log4j的优势