java - 如何将java应用程序日志添加到系统日志

标签 java log4j

我尝试了这种方式,但产生了以下错误:-

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} 将其设置为 00 不是正整数。将其更改为数字 >=1

关于java - 如何将java应用程序日志添加到系统日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380164/

相关文章:

java - Jar 文件无法通过命令提示符或双击运行

java - 设置日志文件名以在 Log4j 中包含当前日期

java - 初学者 Java 循环/数组作业

java - 如何将其转换为方法/类以便可以重用?

java - 使用 Slf4j 和 Log4j 进行 Tomcat 日志记录

java - Log4j2 - 如何将 XML 配置转换为 JDBC appender 的 .properties 格式

java - log4j - 指向多个 log4j.properties 文件之一

java - 从 log4j 定义 Hibernate SQL 日志记录

java - 如何使 Swing jTable 单元格在 View 和内联编辑状态下都显示 "YY-MM-DD"格式的日期对象?

java - 正则表达式 Sublime 到 Java 正则表达式