【发布时间】:2010-08-10 13:22:06
【问题描述】:
我正在使用 Java 中的两个 Apache SyslogAppender 向 Syslog 发送消息。我的转换模式是:
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} 的文件夹。
是否可以使用 Syslog 中的 template() 指令从消息中正确提取 $PROGRAM 的值,分别获取 MyApp 和 ${jboss.server.name}?
提前致谢
丰富
ps:需要明确的是 ${jboss.server.name} 正在到处适当地扩展。
【问题讨论】: