Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想在需要时使用log4net动态创建新的日志文件,但是每个文件应该有不同的内容_C#_Log4net_Log4net Appender - Fatal编程技术网

C# 我想在需要时使用log4net动态创建新的日志文件,但是每个文件应该有不同的内容

C# 我想在需要时使用log4net动态创建新的日志文件,但是每个文件应该有不同的内容,c#,log4net,log4net-appender,C#,Log4net,Log4net Appender,我想在需要时登录单独的文件 比如说,, 我正在运行一个作业,我正在为从数据库获得的某些类别ID执行特定的活动。我想在一个单独的文件中记录每个类别ID的详细信息。为此,我希望动态生成该文件,然后开始登录 public void CreateLogAppender(string CategoryId) { var hierarchy = (Hierarchy)LogManager.GetRepository(); Pa

我想在需要时登录单独的文件

比如说,, 我正在运行一个作业,我正在为从数据库获得的某些类别ID执行特定的活动。我想在一个单独的文件中记录每个类别ID的详细信息。为此,我希望动态生成该文件,然后开始登录

        public void CreateLogAppender(string CategoryId)
        {
            var hierarchy = (Hierarchy)LogManager.GetRepository();

            PatternLayout patternLayout = new PatternLayout
            {
                ConversionPattern = "%date %level %message%newline"
            };
            patternLayout.ActivateOptions();

            var rollingFileAppender = new RollingFileAppender
            {
                File = "MyJob_Category_" + CategoryId + "_",
                AppendToFile = true,
                RollingStyle = RollingFileAppender.RollingMode.Date,
                DatePattern = "yyyyMMdd",
                Layout = patternLayout
            };

            hierarchy.Root.AddAppender(rollingFileAppender);
            hierarchy.Root.Level = Level.Info;
            hierarchy.Configured = true;

            BasicConfigurator.Configure(hierarchy);
        }

        public void CloseLogAppender()
        {
            var hierarchy = (Hierarchy)LogManager.GetRepository();
            hierarchy.Flush(1);
        }

不知何故,上面的代码并不能帮助我做到这一点。如果我用xml硬编码文件名,那么所有文件都有完全相同的内容。我不想硬编码名称,因为我希望在使用特定类别ID时生成名称