Lorsque vous écrivez
Aug 9 06:26:13 10.175.60.14 myPrefix: [error] [TP-Processor114] [my.class.Name] message : exception
myPrefix at fatherOfException
myPrefix at fatherof_fatherOfException
myPrefix at fatherof_fatherof_fatherOfException
...
4 Réponses :
Écrivez une fonction d'emballage pour le faire pour vous.
private void writeToLogs(String message, Exception excp) {
logger.error("myPrefix\t" + message, excp);
}
Merci pour la pointe, mais ce n'est pas ce que je cherche. 1er, il fera plusieurs journaux au lieu d'un. 2ème, je travaille sur un joli grand projet et je ne peux pas imaginer changer tous les logeurs.Log par autre chose. Enfin, votre solution ne préfixule pas la ligne "à" avec le préfixe. Je cherche une solution de configuration log4J.
O OK désolé pour ça. Je ne suis pas trop familier avec log4j, mais quand j'ai fait un rapide Google dessus, j'ai trouvé cela, Logging.apache.org/log4j/1.2/Mog4j/1.2/manual.html , vous l'avez peut-être déjà vu, mais si vous faites défiler jusqu'à la configuration, il peut vous aider. Désolé je ne pouvais pas aider plus.
Vous pouvez écrire votre propre implémentation de HTTP: // Logging. apache.org/log4j/1.2/apidocs/org/aplow/log4j/spi/throwablerenderer.html p> puis, modifiez votre configuration log4j: p> log4j.themrowablinerender = votre nom-classe-class em> p> Le org.hape.log4j.spi.ththrowablerenderer code>: P > loblerenderer code> renvoie un tableau de chaîne code> s. Voici votre code: P> StringWriter sw = new StringWriter();
t.printStackTrace(new PrintWriter(sw));
List<String> l = new LinkedList<String>();
for (String s: sw.toString().split(System.lineSeparator())) {
l.add(String.format("%s %s", prefix, s));
}
return (String[]) l.toArray();
Fonctionne génial, merci! Mais je devais migrer vers Log4J 1.2.16 pour pouvoir faire cela
Cela ne gère pas la classe et le message lancé, ou une cause.
@Alexnauda a édité et ajouté une alternative aussi, merci.
@Alexnauda Votre réponse, cependant, est bien sûr meilleure. Je vais en créer un lien avec le mien.
Sous-classe ajouter à votre Ceci utilise le Lancerenderer code>, par exemple: log4j.properties code>: p> ParfaudeTthowablerer Code> pour rendre la stacktrace de manière familière avant d'ajouter le préfixe, il inclura donc la classe loveable code> classe, message et cause . p> p>
Voici une solution que j'ai trouvée pour la connexion et j'ai été utilisée. L'API pour l'instant ne vous permet pas de préfixer toutes les lignes de la trace de la pile. Pour les autres lignes, j'ai déjà eu un modèle en place avec un identifiant de suivi. Donc, je devais l'utiliser. Alors ce que j'ai fait est
voici le code p> et dans le logback.xml p> et maintenant le StackTrace ressemble à: p>