2014-04-17 13 views
15

ich schreiben möchte einloggen wie:logback zeigen Protokolle mit Zeilennummer

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

so Config ich die logback.xml, in dem Muster, die Config wie:

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

Jedes Ding zeigt ok außer die Zeilennummer, und wenn ich wie

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

alle Werke Dann setzen hinzufügen. Es muss also etwas mit meiner Konfiguration nicht stimmen.
Könnte mir jemand helfen? Vielen Dank. Ich möchte anzeigen, was ich will, und kein Leerzeichen zwischen Methodenname und Zeilennummer.

Antwort

29

Die Logback manual Staaten

In Pattern, Klammern können zur Gruppenumwandlung Mustern verwendet werden. Daraus folgt, dass die Zeichen "(" und ")" eine spezielle Bedeutung haben und als Escapezeichen angegeben werden müssen, wenn sie als Literale verwendet werden sollen. Die spezielle Art der Klammer wird weiter unten erläutert.

[...]

Wenn Sie die Klammerzeichen als Literal behandeln müssen, braucht es von vor jeder Klammer mit einem Backslash geschützt werden. Wie in, \(%d{HH:mm:ss.SSS} [%thread]\).

Sie müssen die Klammer mit einem \ entkommen.

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

Ich brauche einen vollen Paketnamen und mit der Zeile, die IDEA erkennen kann? – Jaskey

+0

@Jaskey, Sie können% c {15} in einem Muster hinzufügen. – dkb

Verwandte Themen