.Net Core 邊學邊記之 使用Log4net

1、添加NuGet包引用

2、修改Program文件

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); })
                .ConfigureLogging((context, builder) => { builder.AddLog4Net(); });

3、根目錄下添加log4net配置文件,文件名:log4net.Config

<?xml version="1.0" encoding="utf-8"?>

<log4net>
  <!-- Define some output appenders-->
  <!--Debug~Warn錯誤級別-->
  <appender name="DebugRollingAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log\info\debug.log" />
    <!--追加日誌內容-->
    <appendToFile value="true" />
    <!--防止多線程時不能寫Log,官方說線程非安全-->
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <!--可以爲:Once|Size|Date|Composite-->
    <!--Composite爲Size和Date的組合-->
    <rollingStyle value="Composite" />
    <!--當備份文件時,爲文件名加後綴-->
    <datePattern value="yyyyMMdd.log" />
    <!-- 日誌最大個數,都是最新的 -->
    <!-- rollingStyle 爲Size時,只能有value個日誌-->
    <!-- rollingStyle 爲Composite時,每天有value個日誌-->
    <maxSizeRollBackups value="120" />
    <!-- 可用的單位:KB|MB|GB -->
    <maximumFileSize value="3MB" />
    <!-- 設備爲true,當肖最新日誌文件名永遠爲file節中的名字b-->
    <staticLogFileName value="true" />
    <!-- 輸出級別在INFO和ERROR之間的日誌 -->
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="DEBUG" />
      <param name="levelMax" value="WARN" />
    </filter>
    <!-- 必須結合起來用,第一個只過濾出WARN,第二個拒絕其它日誌輸出 -->
    <!--
    <filter type="log4net.Filter.LevelMatchFilter">
    <param name="LevelToMatch" value="WARN"/>
    </filter>
    <filter type="log4net.Filter.DenyAllFilter"/>
    -->
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger -%message%newline" />
    </layout>
  </appender>
  <!--Error~Falt級別日誌-->
  <appender name="ErrorRollingAppender" type="log4net.Appender.RollingFileAppender" level="ERROR">
    <file value="log\error\error.log" />
    <!--追加日誌內容-->
    <appendToFile value="true" />
    <!--防止多線程時不能寫Log,官方說線程非安全-->
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <!--可以爲:Once|Size|Date|Composite-->
    <!--Composite爲Size和Date的組合-->
    <rollingStyle value="Composite" />
    <!--當備份文件時,爲文件名加後綴-->
    <datePattern value="yyyyMMdd.log" />
    <!-- 日誌最大個數,都是最新的 -->
    <!-- rollingStyle 爲Size時,只能有value個日誌-->
    <!-- rollingStyle 爲Composite時,每天有value個日誌-->
    <maxSizeRollBackups value="120" />
    <!-- 可用的單位:KB|MB|GB -->
    <maximumFileSize value="3MB" />
    <!-- 設備爲true,當肖最新日誌文件名永遠爲file節中的名字b-->
    <staticLogFileName value="true" />
    <!-- 輸出級別在INFO和ERROR之間的日誌 -->
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="ERROR" />
      <param name="levelMax" value="FATAL" />
    </filter>
    <!-- 必須結合起來用,第一個只過濾出WARN,第二個拒絕其它日誌輸出 -->
    <!--
    <filter type="log4net.Filter.LevelMatchFilter">
    <param name="LevelToMatch" value="WARN"/>
    </filter>
    <filter type="log4net.Filter.DenyAllFilter"/>
    -->
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger -%message%newline" />
    </layout>
  </appender>
  <!-- levels:OFF > FATAL > ERROR > WARN > INFO>DEBUG > ALL -->
  <root>
    <priority value="ALL" />
    <level value="ALL" />
    <appender-ref ref="DebugRollingAppender" />
    <appender-ref ref="ErrorRollingAppender" />
  </root>
</log4net>

 

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