【问题标题】:Why my initialized object of Log4Net have all levels properties as false?为什么我的 Log4Net 初始化对象的所有级别属性都为 false?
【发布时间】:2016-02-11 09:58:38
【问题描述】:

我使用 Castle.Windsor 和 Log4Net 来初始化我的 Logger。

我的 log4net.config:

<?xml version="1.0"?>
 <configuration>
  <log4net>
  <appender name="AllMessagesFile" type="log4net.Appender.RollingFileAppender,log4net">
  <file value="Logs/Log.log" />
  <level value="ALL" />
  <encoding value="utf-8" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <maximumFileSize value="100000KB" />
  <maxSizeRollBackups value="-1" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d %identity [%t] %-5p %c{1}.%M %m%n" />
    <IgnoresException value="False" />
  </layout>
</appender>

<appender name="ErrorsOnlyFile" type="log4net.Appender.RollingFileAppender,log4net">
  <file value="Logs/Error.log" />
  <level value="ERROR" />
  <encoding value="utf-8" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <maximumFileSize value="100000KB" />
  <maxSizeRollBackups value="-1" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d %identity [%t] %-5p %c{1}.%M %m%n" />
  </layout>
</appender>

<root>
  <priority value="ALL" />
  <appender-ref ref="AllMessagesFile" />
  <appender-ref ref="ErrorsOnlyFile" />
</root>

</log4net>
</configuration>

我的 AssamblyInfo.cs 有愚蠢的行:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

在类的构造函数中,我通过 Winsdor 获得了对象:

public class ACIStart
{
    private ILogger Logger { get; set; }

    public ACIStart(ILogger logger)
    {
        Logger = logger;
    }

我没有任何例外,我只是得到了一个所有属性(IsDebbugEnabled、IsErrorEnabled ...)都为 false 的记录器。

我的日志没有写入任何日志文件。

可能是什么问题?

【问题讨论】:

  • 如果您查看log4net documentation for assembly attributes,它会说:“因此,如果您使用配置属性,则必须调用 log4net 以允许它读取属性。对 LogManager.GetLogger 的简单调用将导致属性在要读取和处理的调用程序集上。因此,必须在应用程序启动期间尽早进行日志调用,并且肯定在任何外部程序集已加载和调用。"

标签: log4net log4net-configuration


【解决方案1】:

可能是您需要在根节点中添加日志级别:

<root>
   <level value="DEBUG" />
   ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2021-01-06
    • 2011-06-25
    • 1970-01-01
    相关资源
    最近更新 更多