it-swarm.com.de

logback zeigt Protokolle mit Zeilennummer

Ich möchte ein Log schreiben wie:

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

also konfiguriere ich die logback.xml, im muster die config wie folgt:

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

Alles zeigt ok außer die Zeilennummer, und wenn ich setze, setze ich gerne

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

Dann klappt alles. Es muss also etwas mit meiner Konfiguration falsch sein.
Könnte mir jemand helfen? Vielen Dank. Ich möchte so anzeigen, wie ich es möchte, und keinen Leerraum zwischen Methodenname und Zeilennummer.

16
Awakening

Das Logback Handbuch Status

In PatternLayout können Klammern verwendet werden, um Konvertierungsmuster (.____.) Zu gruppieren. Daraus folgt, dass die "(" und ")" eine besondere Bedeutung haben und Entkommen werden müssen, wenn sie als Literale verwendet werden sollen. Die besondere Natur der Klammer wird weiter unten erläutert.

[...]

Wenn Sie das Zeichen in Klammern als Literal behandeln müssen, muss Umgangen werden, indem Sie jeder Klammer einen Backslash voranstellen. Wie in \(%d{HH:mm:ss.SSS} [%thread]\).

Sie müssen die Klammer mit einem \ versehen.

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

Ein Hinweis für jeden, der auf diese Seite stolpert und nach Informationen zur Konfiguration dieser Datei in der Datei application.properties sucht. Ich hatte die Möglichkeit, die Klammer durch Hinzufügung von zwei umgekehrten Schrägstrichen zu umgehen.

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

Für die Konsolenprotokollierung verwende ich:

<Pattern>%black(%date{"yyyy-MM-dd HH:mm:ss.SSS", "Europe/London"}) %highlight(%-5level) [%green(%X{sessionId})] %yellow(%logger{36}@%method\(%line\)) - %msg%n%throwable</Pattern>

Und für die Protokollierung in eine Datei:

 <pattern>[%date{"yyyy-MM-dd HH:mm:ss,SSSXXX", "Europe/London"}] [${HOSTNAME}] [%thread] %level %logger{36}@%method:%line - %msg%n</pattern>
0
theINtoy