我有一个自定义类,用于创建Log实例并写入日志。
我从其他对象中调用此自定义类的实例进行日志记录。
我注意到由于Ninjatrader线程使用的性质,如果我在log4net.LogicalThreadContext.Properties上设置属性,则仪器属性具有误导性,因为Ninjatrader重用多个乐器的线程并且我的日志不准确。所以我决定为每个事件设置log4net.LogicalThreadContext.Properties,然后将其重置为null。
有没有办法,我可以在我的Logger类的Log实例而不是线程上设置属性?
public class Logger
{
private log4net.ILog Log { get; set; }
private string instrument;
public Logger(string instrumentname)
{
Log = log4net.LogManager.GetLogger(typeof(Logger));
this.instrument=instrumentname;
}
public void Error(object msg)
{
log4net.LogicalThreadContext.Properties["instrument"] = this.instrument;
Log.Error(msg);
log4net.LogicalThreadContext.Properties["instrument"] = null;;
}
}