如何在Log实例上设置属性

时间:2016-06-09 18:37:51

标签: c# log4net

我有一个自定义类,用于创建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;;
    }
}   

0 个答案:

没有答案