【发布时间】:2019-04-30 23:02:05
【问题描述】:
我已经在 DI 类中定义了一个 logger Scope
var serviceProvider = serviceCollection.BuildServiceProvider();
var logger = serviceProvider.GetService<ILogger<Processor>>();
logger.BeginScope(new Dictionary<string, object>
{
{"system", "MyApplication"},
{"invocation_id", Guid.NewGuid()}
});
Logger 是这样使用的(工作正常)
public class Processor : IProcessor
{
private readonly ILogger<Processor> logger;
public Processor(ILogger<Processor> logger)
{
this.logger = logger;
}
public void LogMessage()
{
logger.LogInformation(""Hello World");
//Dispose Logger
}
}
这个记录器完成后如何处理?
【问题讨论】:
-
一次性物品的规则是“谁创造了一次性物品,就应该处理它”。所以这通常意味着创建记录器范围的同一个类也应该处理它。
标签: c# logging dependency-injection dispose