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