日志线程与MDC中的Akka源
日志的记录是异步的,完成日志记录的线程被保存在 Mapped Diagnostic Context (MDC) 的 sourceThread 属性里. 在 Logback 的模式配置中线程名可以通过 %X{sourceThread} 指定:
Note
在应用程序的非Akka的部分也建议使用MDC的 sourceThread 使得这个值在日志里保持一致。
另一个有用的工具是 Akka 的创建logger实例时会捕捉 actor 的地址, 这意味着可以访问到整个actor实例的身份信息来将日志信息与其它信息进行关联(例如:路由的成员)。 这个信息保存在MDC的 akkaSource属性中:
要了解这个属性所包括的内容(也适用于非actor)的细节见 如何记录日志.
日志的记录是异步的,完成日志记录的线程被保存在 Mapped Diagnostic Context (MDC) 的 sourceThread 属性里. 在 Logback 的模式配置中线程名可以通过 %X{sourceThread} 指定:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{ISO8601} %-5level %logger{36} %X{sourceThread} - %msg%n</pattern>
</encoder>
</appender>
Note
在应用程序的非Akka的部分也建议使用MDC的 sourceThread 使得这个值在日志里保持一致。
另一个有用的工具是 Akka 的创建logger实例时会捕捉 actor 的地址, 这意味着可以访问到整个actor实例的身份信息来将日志信息与其它信息进行关联(例如:路由的成员)。 这个信息保存在MDC的 akkaSource属性中:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{ISO8601} %-5level %logger{36} %X{akkaSource} - %msg%n</pattern>
</encoder>
</appender>
要了解这个属性所包括的内容(也适用于非actor)的细节见 如何记录日志.