Javaで2つのApacheSyslogAppenderを使用してSyslogにメッセージを送信しています。私のConversionPatternsは次のとおりです。
Instance-${jboss.server.name}: %d %-5p [%c] (%t) %m%n
Application-MyApp: ${jboss.server.name} - %d %-5p [%c] (%t) %m%n
次に、異なるLog4Jカテゴリを構成して、一方または両方のアペンダーに異なるメッセージを送信します。
私のsyslog構成ファイルには、次のものがあります。
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"));
};
このように、私が欲しいのは、JBossサーバーの名前に置き換えられ/var/log/syslog-ng/JBoss/intg/Applications/MyApp/
たファイル/var/log/syslog-ng/JBoss/intg/Instances/${jboss.server.name}/
にログインすることです。${jboss.server.name}
Application-MyApp
代わりに、とというフォルダにログが書き込まれますInstance-${jboss.server.name}
。
Syslogでtemplate()ディレクティブを使用して、メッセージからの値を適切に抽出し、それぞれ$PROGRAM
MyAppとを取得することは可能${jboss.server.name}
ですか?
前もって感謝します
リッチ
ps:明確にするために、${jboss.server.name}
どこでも適切に拡張されています。