web-dev-qa-db-fra.com

logback show logs avec numéro de ligne

Je veux écrire un journal comme:

2014-04-17 11:00:16.408 [http-apr-9090-exec-4] DEBUG package.method(line) - log.

donc je config le logback.xml, dans le modèle, la config comme:

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M(%line) - %msg%n

Tout montre ok sauf le numéro de la ligne, et si j'ajoute un ensemble comme

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M %line - %msg%n

Alors tout fonctionne. donc il doit y avoir quelque chose de mal avec ma configuration.
Quelqu'un pourrait-il m'aider? Merci. Je veux afficher comme ce que je veux, sans espace entre le nom de la méthode et le numéro de ligne.

16
Awakening

Le manuel Logback states

Dans PatternLayout, les parenthèses peuvent être utilisées pour regrouper les motifs de conversion . Il en résulte que les '(' et ')' ont une signification spéciale et que Doit être évité s'il est destiné à être utilisé en tant que littéral. La nature particulière De la parenthèse est expliquée plus en détail ci-dessous.

[...]

Si vous devez traiter le caractère de parenthèse comme un littéral, vous devez échapper le caractère En faisant précéder chaque parenthèse d'une barre oblique inverse. Comme dans, \(%d{HH:mm:ss.SSS} [%thread]\).

Vous aurez besoin d'échapper à la parenthèse avec un \.

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M\(%line\) - %msg%n
34

Une note pour tous ceux qui tombent sur cette page à la recherche de la configuration dans le fichier application.properties, j’ai réussi à échapper à la parenthèse en ajoutant deux barres obliques inverses.

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M \\(%line\\) - %msg%n
1
Derek