使用log4net自动创建appender

时间:2016-11-23 09:22:07

标签: c# logging log4net log4net-appender

在C#代码中,我需要创建几个具有不同名称的log4net记录器来区分写入的日志。一个记录器可以称为MyNamespace.MyClass.1,另一个记录器可以称为MyNamespace.MyClass.2等。然后将日志写入多个文件:MyNamespace.MyClass.1.log,MyNamespace.MyClass.2.log等。

问题是必须在配置中手动添加段落,每个段落只对应一个记录器名称。

<appender name="logger1" type="log4net.Appender.RollingFileAppender">
  <file value="Logs/MyNamespace.MyClass.1.log" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maximumFileSize value="2MB" />
  <maxSizeRollBackups value="10" />
  <staticLogFileName value="true" />
  <threshold value="INFO" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger %ndc: %message (%file:%line)%newline" />
  </layout>
</appender>

<logger name="MyNamespace.MyClass.1">
  <level value="INFO" />
  <appender-ref ref="logger1" />
</logger>

是否有一个解决方案来概括n logger而不用编写n次代码?

1 个答案:

答案 0 :(得分:1)

您可以以编程方式配置多个记录器。请参阅以下链接:

Log4Net: Programmatically specify multiple loggers