J'envoie des messages à Syslog en utilisant deux Apache SyslogAppenders en Java. Mes ConversionPatterns sont:
Instance-${jboss.server.name}: %d %-5p [%c] (%t) %m%n
Application-MyApp: ${jboss.server.name} - %d %-5p [%c] (%t) %m%n
J'ai alors différentes catégories Log4J configuré pour envoyer des messages différents à l'un, ou les deux appenders.
Dans mon fichier de configuration de syslog, j'ai:
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"));
};
Comme ça, ce que je veux avoir est la connexion à un fichier dans /var/log/syslog-ng/JBoss/intg/Applications/MyApp/
et à un fichier dans /var/log/syslog-ng/JBoss/intg/Instances/${jboss.server.name}/
où ${jboss.server.name}
est remplacé par le nom du serveur JBoss. Au lieu de cela, j'obtiens des journaux écrits dans des dossiers appelés Application-MyApp
et Instance-${jboss.server.name}
.
Est-il possible d'utiliser la directive template() dans Syslog pour extraire correctement la valeur de $PROGRAM
des messages, obtenir MyApp et ${jboss.server.name}
respectivement?
Merci à l'avance
Rich
ps: juste pour être clair ${jboss.server.name}
est correctement étendu partout.