【问题标题】:How to check log4net log path?如何检查 log4net 日志路径?
【发布时间】:2013-12-29 00:53:23
【问题描述】:

我的配置文件是:

<log4net  xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <appender name="InfoFileAppender" type="log4net.Appender.RollingFileAppender">
            <file value="D:/" />
            <appendToFile value="true" />
            <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
            <rollingStyle value="Date" />
            <maxSizeRollBackups value="100" />
            <datePattern value="YYYY-MM-DD'.log'"/>
            <maximumFileSize value="1024KB" />
            <staticLogFileName value="false" />
            <encoding value="utf-8"/>           
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="INFO" />
                <param name="LevelMax" value="INFO" />
            </filter>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date %-5level %logger  - %message%newline" />
            </layout>
        </appender>
        <appender name="ErrorFileAppender" type="log4net.Appender.RollingFileAppender">
            <file value="D:/" />
            <appendToFile value="true" />
            <rollingStyle value="Size" />
            <maxSizeRollBackups value="100" />
            <maximumFileSize value="10240KB" />
            <datePattern value="YYYY-MM-DD'.log'"/>
            <staticLogFileName value="true" />
            <encoding value="utf-8"/>
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="WARN" />
                <param name="LevelMax" value="FATAL" />
            </filter>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date %-5level %logger - %message%newline" />
            </layout>
        </appender>
        <root>
            <level value="INFO" />
            <appender-ref ref="InfoFileAppender" />
            <appender-ref ref="ErrorFileAppender" />
        </root>
    </log4net>

在 app.config 中。

但是D盘没有日志文件:!!!!!!

【问题讨论】:

  • 旁注 - 您有两个附加程序配置为写入完全相同的文件。是故意的吗?
  • 您是否尝试过实际提供文件名如 D:/myLog.log 的路径,而不仅仅是 D:/?
  • @lazyberezovsky 是的,我打算在同一个文件中包含两种类型的信息
  • @Tobias 我试过给指定的文件名,比如 D:/a.log,但还是不行
  • 发布您初始化记录器的代码。 log4net.Config.XmlConfigurator.ConfigureAndWatch

标签: c# logging log4net


【解决方案1】:

刚刚验证了您的配置 - 工作正常。您可能没有正确初始化 log4net。您应该添加到 AssemblyInfo.cs 文件中:

[assembly: XmlConfigurator(Watch = true)]

或者你可以使用XmlConfigurator.ConfigureAndWatch方法或者干脆

XmlConfigurator.Configure();

与 NLog 不同,log4net 无法自行初始化。

注意:您应该将日期模式更改为yyyy-MM-dd'.log' - 年和日应该是小写字母。您也可以使用单个 appender 编写多个级别。无需创建两个写入同一文件的附加程序。

【讨论】:

    【解决方案2】:

    尝试如下

    <file value="D:/ABC.txt" />
    

    assemblyinfo.cs

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多