Log4j Formatage Implicite des Chaînes


J'utilise log4j v1.2.14 pour me connecter à mon projet et j'utilise égalementJava 7 Chaîne.format () pour mettre des variables dans ma sortie. Actuellement, j'écris

LOGGER.info(String.format("Your var is [%s] and you are [%s]", myVar, myVar1));

Est-ce vraiment la meilleure façon de sortir des chaînes? Je pense que {[4] } devrait avoir ceci implémenté implicitement comme ci-dessous:

LOGGER.info("Your var is [%s] and you are [%s]", myVar, myVar1);

Ai-je manqué quelque chose? De plus, existe-t-il des frameworks de journalisation Java qui prennent en charge cela?

Author: Rossiar, 2015-06-22

2 answers

L'api de Slf4j fournit "journalisation paramétrée", ce qui vous permet de faire exactement cela, bien qu'avec une syntaxe légèrement différente. L'exemple est:

logger.debug("Value {} was inserted between {} and {}.", newVal, below, above);

Pour une implémentation, vous pouvez utiliser Logback qui implémente slf4j nativement, ou les liaisons slf4j pour se connecter avec log4j ou d'autres enregistreurs. Le Manuel d'utilisation explique cela, avec un court exemple.

 5
Author: Yosef Weiner, 2015-06-22 09:53:41

Btw, Dans ce scénario, il n'y a pas beaucoup de différence entre l'utilisation de + pour ajouter vos variables à la chaîne et String.format - sauf si vous voulez vraiment réutiliser le "Votre var est..."dans tous vos journaux.

Slf4j vous permet de vous connecter en tant que

log.info("Your var is {} and you are {}", myVar, myVar1);

Notez l'utilisation de {} au lieu d'imprimer des formateurs. Cela nécessite également Java >= 1.5

 0
Author: ring bearer, 2015-06-22 09:13:23