Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4j 我可以使用更高级的模板在syslog ng中提取$PROGRAM吗?_Log4j_Syslog_Syslog Ng - Fatal编程技术网

Log4j 我可以使用更高级的模板在syslog ng中提取$PROGRAM吗?

Log4j 我可以使用更高级的模板在syslog ng中提取$PROGRAM吗?,log4j,syslog,syslog-ng,Log4j,Syslog,Syslog Ng,我使用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类别配置为向其中一个或两个appender发送不同的消息 在我的系统日志配置文件中,我有: destination d_jbos

我使用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类别配置为向其中一个或两个appender发送不同的消息

在我的系统日志配置文件中,我有:

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}
正在正确地扩展到所有地方。

我找到了一个解决方案:更改消息的格式,以便希望作为
$PROGRAM
值的值是第一个冒号之前的唯一值:

因此,以下是:

Instance-${jboss.server.name}: %d %-5p [%c] (%t) %m%n
Application-MyApp: ${jboss.server.name} - %d %-5p [%c] (%t) %m%n
变成:

${jboss.server.name}:Instance: %d %-5p [%c] (%t) %m%n
MyApp:Application:${jboss.server.name}: - %d %-5p [%c] (%t) %m%n
这样,模板就可以正确地返回我想要的内容