Log4j и syslogappender

у меня есть java-приложение, использующее log4j SyslogAppender (facility=USER), и я могу видеть, используя tcpdump на порту 514, что мое приложение отправляет предполагаемое сообщение журнала в качестве дейтаграммы, а также netstat показывает мне, что syslogd (red hat) работает и слушает 0.0.0.0:514, но я не вижу никакого ведения журнала в /var/log/messages.

в моем системном журнале.conf, у меня есть

*.info         /var/log/messages

мой шаблон преобразования для SyslogAppender является

%d{MMM dd HH:mm:ss} %F %L %5p [%t] %m %n"

Я не знал почему он не регистрируется или где именно я должен искать, чтобы увидеть, что не удается. И у меня недостаточно разрешений на машине для запуска/остановки syslogd или запуска Вручную, чтобы включить подробные журналы отладки.

любые указатели, как я продолжаю?

Edit:

приложение ниже

private void initSyslog() { 
    SyslogAppender syslogAppender = new SyslogAppender();   
    syslogAppender.setName("syslog");
    syslogAppender.setLayout(new PatternLayout("%d{MMM dd HH:mm:ss} %F %L %5p [%t] %m %n")); 
    syslogAppender.setFacility("USER"); 
    syslogAppender.setFacilityPrinting(true);
    syslogAppender.setSyslogHost("localhost");
    syslogAppender.activateOptions(); 
    Logger.getRootLogger().addAppender(syslogAppender);
    Logger.getRootLogger.info("Syslogdone");
} 

2 ответов


удаленное ведение журнала не включено в syslog. Странно, потому что он все еще открывается и слушает 514. Как только я начал с syslog-r, все начало регистрироваться.


может быть, это поможет:http://wiki.loggly.com/log4j

Это просто пример настройки с использованием SyslogAppender. Просто проигнорируйте часть о пересылке его Loggly.