nlog 通过记录器名称设置全局 属性
nlog set global property by logger name
我想实例化一个记录器实例一次并为其设置一些属性,只要我通过该名称获取记录器,就可以在任何地方使用这些属性,这可以实现吗?如何实现?
例子-
Logger logger = LogManager.GetLogger("MyLogger");
我想为此记录器设置一些属性,以用于我计划的作业名称为 -
logger.Property = job.Name;
Job.cs
public class Job{
Logger logger = LogManager.GetLogger("MyLogger");
logger.Property = job.Name;
//Call worker
worker.Process();
}
Worker.cs
public class worker{
Logger logger = LogManager.GetLogger("MyLogger");
public static Process(){
logger.Error("Test");
}
}
我想在 worker 中记录 Job 名称,最好的方法是什么?我想将此扩展到工作或工作人员发出的任何进一步呼叫。
可以考虑到处使用同一个Logger-instance,使用WithProperty:
public static class MyLogger {
public static Logger Instance = NLog.LogManager.GetLogger("MyLogger").WithProperty("Hello", World");
}
public class Job{
Logger logger = MyLogger.Instance;
logger.Property = job.Name;
//Call worker
worker.Process();
}
我想实例化一个记录器实例一次并为其设置一些属性,只要我通过该名称获取记录器,就可以在任何地方使用这些属性,这可以实现吗?如何实现?
例子-
Logger logger = LogManager.GetLogger("MyLogger");
我想为此记录器设置一些属性,以用于我计划的作业名称为 -
logger.Property = job.Name;
Job.cs
public class Job{
Logger logger = LogManager.GetLogger("MyLogger");
logger.Property = job.Name;
//Call worker
worker.Process();
}
Worker.cs
public class worker{
Logger logger = LogManager.GetLogger("MyLogger");
public static Process(){
logger.Error("Test");
}
}
我想在 worker 中记录 Job 名称,最好的方法是什么?我想将此扩展到工作或工作人员发出的任何进一步呼叫。
可以考虑到处使用同一个Logger-instance,使用WithProperty:
public static class MyLogger {
public static Logger Instance = NLog.LogManager.GetLogger("MyLogger").WithProperty("Hello", World");
}
public class Job{
Logger logger = MyLogger.Instance;
logger.Property = job.Name;
//Call worker
worker.Process();
}