17

%logger {x}構文を使用してロガーの名前を短縮できます。ここで、xは短縮手順を制御します。同じようにスレッドの名前を短くする方法はありますか?

4

5 に答える 5

31
[%.7thread]

これにより、スレッド名の最後の7文字が出力されます。

多くの場合、スレッド名の末尾の文字は、スレッド名の先頭の文字よりも興味深いものです。:-)

ログバックドキュメントで最大フィールド幅修飾子について読むことができます。

于 2013-03-20T03:17:54.723 に答える
6

次を使用できます。

[%.-10t]

この式は、スレッド名の最初の10文字を出力します。

于 2011-08-30T10:14:51.803 に答える
3

最後の7文字とスペースを含む右パッドを印刷するには:

[%-7.7thread] 

出力:

14:22:43.097 [main   ] DEBUG 
14:22:43.341 [main   ] INFO  
14:22:43.341 [main   ] INFO  
14:22:45.399 [-target] INFO  
于 2018-08-16T12:25:43.233 に答える
1

{x}の構文に相当するものはないと思いますが、スレッド名の最初の5文字だけを印刷%threadするようなものを使用できますが、短縮バージョンではなく5文字だけを印刷できます(もちろん、必要に応じて数を調整してください) %.-5thread

于 2011-08-30T10:09:29.230 に答える
1

あなたのスレッドの冒頭でこれはどうですか?

if (Thread.currentThread().getName().split("-").length > 1) {
    String threadName = Thread.currentThread().getName();
    threadName = "thread" + threadName.split("-")[3];
    Thread.currentThread().setName(threadName);
}

次に、logback.xmlで:

[%-8thread] %msg%n

...そしてあなたはこのようなものを手に入れるでしょう:

[main    ] Process started
[thread1 ] Thread started
[thread2 ] Thread started
[thread1 ] Thread ended
[thread1 ] Thread started
[thread2 ] Thread ended
[thread2 ] Thread started
[thread1 ] Thread ended
[thread2 ] Thread ended
[thread3 ] Thread ended
[thread4 ] Thread ended
[thread5 ] Thread ended
[main    ] Process ended
于 2017-06-07T10:31:19.427 に答える