これを一貫して再現することはできませんでした。これはログバックのバグだと思いますが、明らかにそうは思えず、提出する前にクリーンで再現可能なテストケースが必要になるので、誰かが同様の動作を見た場合に備えて SO に尋ねています。
基本的にSMTPAppender
、次のようなものがあります。
<appender name="QA-SMTP"
class="ch.qos.logback.classic.net.SMTPAppender">
<!-- SMTP appends a default evaluator of on error, this is the simplest evaluator I found to implement -->
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>me.unroll.logging.loggers.InfoEmail.QA</marker>
</evaluator>
<smtpHost>smtp.gmail.com</smtpHost>
<smtpPort>465</smtpPort>
<SSL>true</SSL>
<username>test</username>
<password>test</password>
<from>test</from>
<to>test</to>
<subject>%message</subject>
<layout>
<pattern>hello! thread: %thread</pattern>
</layout>
</appender>
と、こんな感じのメールが来ています。これは、1)がスレッドでlogger.error(...)
呼び出された場合main
、または 2) テスト プールを作成して送信したばかりの場合には発生しませんでしたが、実際の本番環境では頻繁に発生しましたが、一貫してではありませんでした。は MINA からのコールバック中です)。
こんにちは!スレッド: メインこんにちは! スレッド: NioProcessor-2
簡潔にするために省略した別のアペンダーと一致する別のケース:
ユーザー / に対して作成されたアクションが実行されました。
作成者: ip-10-212-90-140.ec2.internal タイムスタンプ: 2013 年 2 月 19 日 02:48:09.747 ロガー ソース: me.unroll.logging.loggers.InfoEmail アプリケーション: 監視クライアント yahoo === ========================= ユーザー 12345 / test@gmail.com に対してアクションが実行されました
マシンで作成: ip-10-212-90-140.ec2.internal タイムスタンプ: 2013 年 2 月 19 日 15:24:06.016
「ユーザーID/メール」はから取得されますMDC
-これが、スレッドを明示的に印刷するという考えがあった理由です。基本的に、同じログ イベントが作成されたように見えます。1 つはメイン スレッドからのもので (logback はどうやってメイン スレッドを追加できたのでしょうか? わからない)、もう 1 つは問題の実際のスレッドからのものです。
誰かがこの動作を見たことがありますか、または修正方法を知っていますか?