【问题标题】:Automatically create appenders with log4net [duplicate]使用 log4net 自动创建附加程序 [重复]
【发布时间】:2017-04-07 05:18:15
【问题描述】:

在 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次这段代码的情况下对n个logger进行泛化?

【问题讨论】:

    标签: c# logging log4net log4net-appender


    【解决方案1】:

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

    Log4Net: Programmatically specify multiple loggers

    【讨论】:

    • 非常感谢您的回答。使用这种方法,我们失去了配置文件提供的灵活性,但我将能够自动填充日志文件。
    猜你喜欢
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多