Я отправляю сообщения в Syslog, используя два Apache SyslogAppenders на Java. Мои конверсионные шаблоны:
Instance-${jboss.server.name}: %d %-5p [%c] (%t) %m%n
Application-MyApp: ${jboss.server.name} - %d %-5p [%c] (%t) %m%n
У меня тогда есть разные категории Log4J, настроенные на отправку разных сообщений одному или обоим получателям.
В моем файле конфигурации системного журнала у меня есть:
destination d_jboss_appli_integ {
file("/var/log/syslog-ng/JBoss/intg/Applications/$PROGRAM/$YEAR$MONTH$DAY.log"
template("Application-$PROGRAM: $MSG\n"));
};
destination d_jboss_instance_integ {
file("/var/log/syslog-ng/JBoss/intg/Instances/$PROGRAM/$YEAR$MONTH$DAY.log"
template("Instance-$PROGRAM: $MSG\n"));
};
Таким образом, то, что я хочу иметь, входит в файл в /var/log/syslog-ng/JBoss/intg/Applications/MyApp/
и в файл в /var/log/syslog-ng/JBoss/intg/Instances/${jboss.server.name}/
, где ${jboss.server.name}
заменяется именем сервера JBoss.
Вместо этого я получаю журналы, записанные в папки с именами Application-MyApp
и Instance-${jboss.server.name}
.
Можно ли использовать директиву template () в Syslog для правильного извлечения значения $PROGRAM
из сообщений, получая MyApp и ${jboss.server.name}
соответственно?
Заранее спасибо
Rich
ps: просто для ясности ${jboss.server.name}
должным образом расширяется везде.