log4net Invalid RollPoint, unable to parse

1、參考:https://issues.apache.org/jira/browse/LOG4NET-60

2、配置如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>

  <log4net>
    <!--根配置-->
    <root>
      <!--日誌級別:可選值: ERROR > WARN > INFO > DEBUG -->
      <level value="ERROR"/>
      <level value="WARN"/>
      <level value="INFO"/>
      <level value="DEBUG"/>
      <appender-ref ref="ErrorLog" />
      <appender-ref ref="WarnLog" />
      <appender-ref ref="InfoLog" />
      <appender-ref ref="DebugLog" />
    </root>
    <!-- 錯誤 Error.log-->
    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
      <!--目錄路徑,可以是相對路徑或絕對路徑-->
      <param name="File" value="log/"/>
      <!--文件名-->
      <param name="DatePattern" value="/&quot;Error.log&quot;"/>
      <!--追加到文件-->
      <appendToFile value="true"/>
      <!--記錄日誌寫入文件時,不鎖定文本文件,防止多線程時不能寫Log,官方說線程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--創建日誌文件的方式,可選值:Date[日期],文件大小[Size],混合[Composite]-->
      <rollingStyle value="Composite"/>
      <!--寫到一個文件-->
      <staticLogFileName value="false"/>
      <!--單個文件大小。單位:KB|MB|GB-->
      <maximumFileSize value="1MB"/>
      <!--最多保留的文件數,設爲"-1"則不限-->
      <maxSizeRollBackups value="10"/>
      <!--日誌格式-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="ERROR" />
      </filter>
    </appender>

    <!-- 警告 Warn.log-->
    <appender name="WarnLog" type="log4net.Appender.RollingFileAppender">
      <!--目錄路徑,可以是相對路徑或絕對路徑-->
      <param name="File" value="log/"/>
      <!--文件名-->
      <param name="DatePattern" value="/&quot;Warn.log&quot;"/>
      <!--追加到文件-->
      <appendToFile value="true"/>
      <!--記錄日誌寫入文件時,不鎖定文本文件,防止多線程時不能寫Log,官方說線程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--創建日誌文件的方式,可選值:Date[日期],文件大小[Size],混合[Composite]-->
      <rollingStyle value="Composite"/>
      <!--寫到一個文件-->
      <staticLogFileName value="false"/>
      <!--單個文件大小。單位:KB|MB|GB-->
      <maximumFileSize value="2MB"/>
      <!--最多保留的文件數,設爲"-1"則不限-->
      <maxSizeRollBackups value="10"/>
      <!--日誌格式-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="WARN" />
        <param name="LevelMax" value="WARN" />
      </filter>
    </appender>

    <!-- 信息 Info.log-->
    <appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
      <!--目錄路徑,可以是相對路徑或絕對路徑-->
      <param name="File" value="log/"/>
      <!--文件名-->
      <param name="DatePattern" value="/&quot;Info.log&quot;"/>
      <!--追加到文件-->
      <appendToFile value="true"/>
      <!--記錄日誌寫入文件時,不鎖定文本文件,防止多線程時不能寫Log,官方說線程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--創建日誌文件的方式,可選值:Date[日期],文件大小[Size],混合[Composite]-->
      <rollingStyle value="Composite"/>
      <!--寫到一個文件-->
      <staticLogFileName value="false"/>
      <!--單個文件大小。單位:KB|MB|GB-->
      <maximumFileSize value="5MB"/>
      <!--最多保留的文件數,設爲"-1"則不限-->
      <maxSizeRollBackups value="10"/>
      <!--日誌格式-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>
    </appender>

    <!-- 調試 Debug.log-->
    <appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
      <!--目錄路徑,可以是相對路徑或絕對路徑-->
      <param name="File" value="log/"/>
      <!--文件名-->
      <param name="DatePattern" value="/&quot;Debug.log&quot;"/>
      <!--追加到文件-->
      <appendToFile value="true"/>
      <!--記錄日誌寫入文件時,不鎖定文本文件,防止多線程時不能寫Log,官方說線程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--創建日誌文件的方式,可選值:Date[日期],文件大小[Size],混合[Composite]-->
      <rollingStyle value="Composite"/>
      <!--寫到一個文件-->
      <staticLogFileName value="false"/>
      <!--單個文件大小。單位:KB|MB|GB-->
      <maximumFileSize value="5MB"/>
      <!--最多保留的文件數,設爲"-1"則不限-->
      <maxSizeRollBackups value="10"/>
      <!--日誌格式-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="DEBUG" />
      </filter>
    </appender>
  </log4net>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>

3、報錯如下:

System.ArgumentException: Invalid RollPoint, unable to parse
log4net:ERROR Could not create Appender [ErrorLog] of type [log4net.Appender.RollingFileAppender]. Reported error follows.
System.ArgumentException: Invalid RollPoint, unable to parse [/"Error.log"]
   在 log4net.Appender.RollingFileAppender.ActivateOptions()
   在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [ErrorLog] not found.
log4net:ERROR Could not create Appender [WarnLog] of type [log4net.Appender.RollingFileAppender]. Reported error follows.
System.ArgumentException: Invalid RollPoint, unable to parse [/"Warn.log"]
   在 log4net.Appender.RollingFileAppender.ActivateOptions()
   在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [WarnLog] not found.
log4net:ERROR Could not create Appender [InfoLog] of type [log4net.Appender.RollingFileAppender]. Reported error follows.
System.ArgumentException: Invalid RollPoint, unable to parse [/"Info.log"]
   在 log4net.Appender.RollingFileAppender.ActivateOptions()
   在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [InfoLog] not found.
log4net:ERROR Could not create Appender [DebugLog] of type [log4net.Appender.RollingFileAppender]. Reported error follows.
System.ArgumentException: Invalid RollPoint, unable to parse [/"Debug.log"]
   在 log4net.Appender.RollingFileAppender.ActivateOptions()
   在 log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [DebugLog] not found.

4、原因:

因爲使用的是RollingFileAppender,是根據日期進行循環生成的,所以<param name="DatePattern" value="/&quot;Warn.log&quot;"/>不對,需要包含時期

5、改正如下:

<!--文件名,按日期生成文件夾-->
<param name="DatePattern" value="/yyyy-MM-dd/&quot;Warn.log&quot;"/>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章