我尝试了这种方式,但产生了以下错误:-
log4j:ERROR Precision option (0) isn't a positive integer.
<小时/>
public class log4jExample {
private static Logger logger = Logger.getRootLogger();
public static void main(String[] args) {
try {
SyslogAppender syslogAppender = new SyslogAppender();
syslogAppender.setName("SYSLOG");
syslogAppender.setSyslogHost("localhost");
syslogAppender.setFacility("Local3");
syslogAppender.setHeader(true);
PatternLayout layout = new PatternLayout("%d{dd-MMM-yyyy HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n");
syslogAppender.setLayout(layout);
Category category = Category.getInstance(log4jExample.class.getName());//logger.getParent();
Throwable thrwo = new Throwable();
LoggingEvent event = new LoggingEvent("log4jExample.class", category, 1000, Priority.DEBUG, new Object(), thrwo);
syslogAppender.append(event);
logger.debug("LOG");
} catch (Exception ex) {
System.out.println("Exc " + ex);
}
}
}
属性文件:
log4j.rootLogger=INFO, SYSLOG log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender log4j.appender.SYSLOG.SyslogHost=localhost log4j.appender.SYSLOG.Facility=Local3 log4j.appender.SYSLOG.Header=true log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout log4j.appender.SYSLOG.layout.ConversionPattern=java %d{ISO8601} %p %t %c{0}.%M - %m%n
最佳答案
它几乎可以告诉你出了什么问题:
Precision option (0) isn't a positive integer.
正如您在 PatternLayout
documentation 中所读到的那样, c
有一个精度说明符,您已使用 %c{0}
将其设置为 0
。 0
不是正整数。将其更改为数字 >=1
关于java - 如何将java应用程序日志添加到系统日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380164/