C# 4.0 如何使用tracerx登录到多个文件

C# 4.0 如何使用tracerx登录到多个文件,c#-4.0,logging,C# 4.0,Logging,我正在使用Tracerx进行日志记录。目前,所有日志都保存在一个文件中 Logger.GetLogger("name"); 不创建新文件。我希望每个日志都位于一个单独的文件中。如何实现它?日志文件名不受传递到Logger.GetLogger(…)的字符串控制。它由初始化日志文件时设置的名称控制。下面是一个可以用作模板的示例类。在InitLogging函数中,您需要根据需要为该类命名的日志更改属性Logging.TextFileLogging.Name和Logging.BinaryFileLog

我正在使用Tracerx进行日志记录。目前,所有日志都保存在一个文件中

Logger.GetLogger("name");

不创建新文件。我希望每个日志都位于一个单独的文件中。如何实现它?

日志文件名不受传递到
Logger.GetLogger(…)
的字符串控制。它由初始化日志文件时设置的名称控制。下面是一个可以用作模板的示例类。在
InitLogging
函数中,您需要根据需要为该类命名的日志更改属性
Logging.TextFileLogging.Name
Logging.BinaryFileLogging.Name

 public class MyClass
 {
    // Declare a Logger instance for use by this class.
    private static readonly Logger _log = Logger.GetLogger("MyClass");

    // Initialize TracerX
    private static bool LogFileOpened = InitLogging();

    public void MyFunction()
    {
        using(_log.DebugCall())
        {
            //Do some stuff
            _log.Info("Doing some stuff in MyFunction");
        }
    }

    private static bool InitLogging()
    {
        // Load TracerX configuration from an XML file.
        Logger.Xml.Configure("TracerX.xml");;

        //Setup the name of the binary file
        Logger.BinaryFileLogging.CircularStartSizeKb = 0;
        Logger.BinaryFileLogging.Directory = "[path to my logs directory]";
        Logger.BinaryFileLogging.Name = "MyClassLog";

        //Setup the name of the text file
        Logger.TextFileLogging.CircularStartSizeKb = 0;
        Logger.TextFileLogging.Directory = "[path to my logs directory]";
        Logger.TextFileLogging.Name = "MyClassLog";

        if (Logger.TextFileLogging.IsOpen == false)
            Logger.TextFileLogging.Open();

        if (Logger.BinaryFileLogging.IsOpen == false)
            Logger.BinaryFileLogging.Open();

        return true;
    }

}

这应该让你开始。如果你需要进一步的帮助,有很好的例子。

两年后,这可能对你没有帮助,但是

每个记录器对象都有一个名为BinaryFile的属性,该属性指定该记录器使用的文件。BinaryFile属性的初始/默认值对于所有记录器都是相同的,这就是它们都写入同一文件的原因。如果希望给定的记录器写入不同的文件,则需要为其创建新的二进制文件

下面的示例代码创建两个记录器(Log1和Log2),并为每个记录器分配不同的二进制文件(具有不同的文件名)。BinaryFile还可以设置其他几个属性,如Directory、MaxSizeMb、FullFilePolicy等。请注意,您还需要调用Open()方法来实际打开/创建文件

        Logger Log1 = Logger.GetLogger("name1");
        Log1.BinaryFile = new BinaryFile()
        {
            Name = "FileName_1"
        };


        Logger Log2 = Logger.GetLogger("name2");
        Log2.BinaryFile = new BinaryFile()
        {
            Name = "FileName_2"
        };