log4net 方法 GetLogger() 在 Serilog 中等效
log4net method GetLogger() Equivalent in Serilog
背景简介
我们正在将项目中的 log4net
替换为 Serilog
。在我们的许多 classes 中,当使用 MethodBase.GetCurrentMethod().DeclaringType
作为参数给出 class 名称时,我们使用 log4net 的方法 LogManager.GetLogger
,因此我们可以知道在哪个 class 日志已写入。
我的问题是
在Serilog中是否有任何等效的方法可以给我记录器?我知道有 ForContext()
的选项,你可以指定你所在的 class,但我仍然不知道如何在没有某种 logManager 的情况下获取记录器的实例。
P.S
将记录器作为每个 class 构造函数的参数(而不是使用 Getlogger()
)将花费一些时间,我真的希望避免使用此选项。
在上下文中设置的 SourceContext 属性 怎么样?
https://github.com/serilog/serilog/issues/91
在我做了一些研究之后,我发现在 Serilog 中有 NO Log4Net
GetLogger() 等价物。
答案是否,但也许Source Contexts就是您所需要的。
Serilog 的 Wiki 中有一个示例:
var myLog = Log.ForContext<MyClass>();
myLog.Information("Hello!");
背景简介
我们正在将项目中的 log4net
替换为 Serilog
。在我们的许多 classes 中,当使用 MethodBase.GetCurrentMethod().DeclaringType
作为参数给出 class 名称时,我们使用 log4net 的方法 LogManager.GetLogger
,因此我们可以知道在哪个 class 日志已写入。
我的问题是
在Serilog中是否有任何等效的方法可以给我记录器?我知道有 ForContext()
的选项,你可以指定你所在的 class,但我仍然不知道如何在没有某种 logManager 的情况下获取记录器的实例。
P.S
将记录器作为每个 class 构造函数的参数(而不是使用 Getlogger()
)将花费一些时间,我真的希望避免使用此选项。
在上下文中设置的 SourceContext 属性 怎么样? https://github.com/serilog/serilog/issues/91
在我做了一些研究之后,我发现在 Serilog 中有 NO Log4Net
GetLogger() 等价物。
答案是否,但也许Source Contexts就是您所需要的。
Serilog 的 Wiki 中有一个示例:
var myLog = Log.ForContext<MyClass>();
myLog.Information("Hello!");