web-dev-qa-db-ja.com

logback行番号付きのログを表示

私は次のようなログを書きたいです:

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

だから私はlogback.xmlを設定します、パターンでは、設定は次のようになります:

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

すべてがOK except行番号を示しています。

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

その後、すべてが動作します。だから私の設定に何か問題があるはずです。
誰か助けてくれませんか?ありがとう。メソッド名と行番号の間にスペースを入れずに、好きなように表示したい。

21
Awakening

Logbackマニュアル の状態

PatternLayoutでは、括弧を使用して変換パターンをグループ化できます。 つまり、「(」と「)」は特別な意味を持ち、リテラルとして使用する場合はエスケープする必要があります。括弧の特別な性質以下でさらに説明します。

[...]

括弧文字をリテラルとして扱う必要がある場合は、各括弧の前にバックスラッシュを付けてエスケープする必要があります。のように、\(%d{HH:mm:ss.SSS} [%thread]\)

括弧は\でエスケープする必要があります。

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

Application.propertiesファイルでこれを設定する方法を探しているこのページに出くわした人へのメモとして、私は2つのバックスラッシュを追加することによって括弧をエスケープすることに成功しました。

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

コンソールロギングでは、次を使用します。

<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>

そして、ファイルにロギングするために:

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