の形質とDiagnosticActorLogging
の形質の違いは何ですか?また、どちらを優先させるべきですか? docsを簡単に見ても、多くのガイダンスは得られません。AkkaのActorLogging特性の代わりにDiagnosticActorLoggingを使用するタイミングは?
0
A
答えて
0
MDCでは、ログに追加するコンテキストにコンテキストを追加できます。例えば、ログパターン%5p %X{user-id} %m%n
で、MDCマップでuser-id
を挿入すると、テンプレートのフィールドに値を代入します%X{user-id}
DiagnosticActorLogging
はあなたにmdc
への容易なアクセスを提供し、俳優によって処理された各メッセージのMDCを設定し、クリアの世話をします。 DiagnosticActorLogging
特性のaroundReceive
の方法を見てください。それをよりよく理解するためには、
0
それを把握する最も簡単な方法は、DiagnosticActorLogging部をチェックしに行くことです。
/**
* Scala API: Mix in DiagnosticActorLogging into your Actor to easily obtain a reference to a logger with MDC support,
* which is available under the name "log".
* In the example bellow "the one who knocks" will be available under the key "iam" for using it in the logback pattern.
*
* {{{
* class MyActor extends Actor with DiagnosticActorLogging {
*
* override def mdc(currentMessage: Any): MDC = {
* Map("iam", "the one who knocks")
* }
*
* def receive = {
* case "pigdog" => log.info("We've got yet another pigdog on our hands")
* }
* }
* }}}
*/
trait DiagnosticActorLogging extends Actor {
import akka.event.Logging._
val log = akka.event.Logging(this)
def mdc(currentMessage: Any): MDC = emptyMDC
override protected[akka] def aroundReceive(receive: Actor.Receive, msg: Any): Unit = try {
log.mdc(mdc(msg))
super.aroundReceive(receive, msg)
} finally {
log.clearMDC()
}
}
基本的には、暗黙的にすべての混乱なしに俳優のすべてのログコールにロギングデータのいくつかの共有作品を関連付けることができますそれらを明示的に追加する。アプリケーションによっては、ホスト名、リクエストID、クライアントID、jarバージョン、ビルド日付、エンドポイントなどに便利です。
関連する問題
- 1. 特定のデータベースの代わりにmasterデータベースを使用する
- 2. シングルトンの代わりに依存性注入を使用する
- 3. Akkaの代わりにタスクを順番に処理する
- 4. Android-Studio 2.2で "relativePercent"の代わりに使用する属性
- 5. divの代わりにdivの代わりにJSのプリペンドを使用する
- 6. 代わりにブール型属性を使用するx3
- 7. Yahtzee、属性のリストの代わりに辞書を使用
- 8. Impress.js&CSS変換の代わりにHTML5データ属性を使用
- 9. グローバル変数の代わりにクラス属性を使用する方法は?
- 10. TinyMCEのIDの代わりにPOSTにname属性を使用する方法
- 11. Task.Runを使用するタイミングasync-awaitを使用するタイミングと組み合わせて使用するタイミング
- 12. Railsの代わりにsend_fileの代替ファイルを使用する
- 13. Akkaストリームは例外をスローする代わりにアイドルのままです。
- 14. トーストを使用する代わりに
- 15. 代わりにパーシャルビューコントローラを使用する
- 16. 特定のホストの代わりにドメイン名にldapsearchを使用する方法
- 17. RxSwiftのVariableの代わりにBehaviorRelayを使用するには?
- 18. ケラ活性化パラメータの代わりに活性化レイヤを使用
- 19. AlgoliaでオブジェクトIDの代わりに特定のキーを使用するJSONオブジェクト
- 20. クラスの代わりにコレクションを使用
- 21. Submitの代わりにButtonを使用
- 22. expand.gridの代わりにouterを使用
- 23. VARCHAR2の代わりにCLOBを使用
- 24. scrolllistの代わりにフラットリストを使用
- 25. ptの代わりにemを使用
- 26. サテライトアセンブリの代わりにリソースファイルを使用
- 27. リストビューの代わりにaddViewを使用
- 28. JqGrid:editurlの代わりに$ .ajax()を使用
- 29. SaveOrUpdateの代わりにMergeを使用
- 30. テキストエリアのパターン属性の代わりに