2

我正在使用 Castle Windsor 和 Log4Net,我想在不同的服务(每个事务/WCF 调用)之间共享“相关 ID”。理想情况下,这甚至会跨越 WCF 事务(单击客户端会生成 ID,然后在服务器上重用该 ID)。

看起来 IExtendedLogger 及其 ThreadProperties 是要走的路,但我将如何设置它们?有没有比创建自己的 ILoggerFactory 并在创建时设置 ThreadProperties 更好的方法?(顺便说一句,服务的不同生活方式设置会破坏机制吗?)

不幸的是,这些文档真的很少…… :(

我的目标是我的日志看起来像这样:

1111-1111-1111-1111 INFO OrderService: Processing order with ID 8765
8888-8888-8888-8888 INFO CustomerService: Updating address for customer with ID 9999
1111-1111-1111-1111 INFO OrderRepository: Loading order with ID 1234
1111-1111-1111-1111 INFO CustomerRepository: Loading customer with ID 2222
8888-8888-8888-8888 INFO CustomerRepository: Loading customer with ID 2222
...

因此,这将是两个不同的事务(OrderService 和 CustomerService 中的入口点),即使两者都使用 CustomerRepository(依赖项),也会保留上下文,以便轻松查看哪个日志消息属于哪个调用/事务.

4

0 回答 0