NLog.更改类名
本文关键字:NLog | 更新日期: 2023-09-27 18:07:43
我想知道是否有任何方法在运行时更改日志记录器实例的类名?我不想在每个类中创建记录器,而是通过构造函数注入它。但是在我这样做之后,我在文件中得到了错误的类名,它调用了事件。项目结构如下
public class c1
{
private Logger _logger = LogManager.GetCurrentClassLogger();
public void doSmth()
{
c2 myC2= new c2(_logger);
myC2.LogSomething();
}
public void LogSomething()
{
_logger.Info("c1 test");
}
}
public class c2
{
private Logger _logger;
public c2(Logger logger)
{
this._logger = logger;
}
public void LogSomething() {
_logger.Info("c2 test");
}
}
一切正常,但在日志文件中我们得到
2011-09-07 09:33:59.7521|INFO|c1|c1 test
2011-09-07 09:33:59.7611|INFO|c1|c2 test
代替${logger}
布局渲染器,使用${callsite}
渲染器
<target xsi:type="Trace"
name="t"
layout="${callsite:className=true:includeSourcePath=false:methodName=false}
| ${message}" />
这应该产生您期望的结果。