c#中使用log4net

c#中使用log4net

需求在winform程序中使用listview或者textbox顯示日誌,並且也要將日誌文件記錄在單獨的txt日誌文件中

在網上找了個例子,可以實現顯示在textbox中,但是一直沒有打印txt文本日誌文件。究其原因是log4net配置文件需要在debug目錄下,且需要確認是最新修改的內容。

需要確認的關鍵步驟如下:

  1. 正確引用log4net,最好是在nuget管理工具裏面選擇對應版本。
  2. log4net.dll 需要在debug目錄下
  3. 配置文件log4net.config需要在debug目錄下
  4. AssemblyInfo.cs文件中 添加:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

關鍵配置文件如下

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--在配置選項中加入log4net的引用-->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  
  <log4net>
    <appender  name="LogFile" type="log4net.Appender.FileAppender" >
      <!--日誌路徑-->
      <param name= "File" value= "D://sss.txt"/>
      <!--是否是向文件中追加日誌-->
      <param name= "AppendToFile" value= "true"/>
      <!--log保留天數-->
      <param name= "MaxSizeRollBackups" value= "10"/>
      <!--日誌文件名是否是固定不變的-->
      <param name= "StaticLogFileName" value= "false"/>
      <!--日誌文件名格式爲:2008-08-31.log-->
      <param name= "DatePattern" value= "yyyy-MM-dd".log""/>
      <!--日誌根據日期滾動-->
      <param name= "RollingStyle" value= "Date"/>
      <!--不要使用小數,否則會一直寫入當前日誌-->
      <maximumFileSize value="2MB"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} --%-5p-- %m%n" />
      </layout>
    </appender>
    <appender>
      <!--一個配置文件可以有很多appender,一個appender節就相當於一個日誌輸出介質或方法。-->
    </appender>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <logger name="logApp">
      <!--定義logger對象的名字爲logApp,以方便在代碼中使用logger-->
      <!--配置項可以不配置-->
      <level value="ALL" />
      <!--定義輸出的信息等級爲所有其中包括Fatal.Error.Warn.Info.Debug-->
    </logger>
    <root>
      <!--定義日誌輸出的方式和等級-->
      <level value="Info" />
      <appender-ref ref="LogFile" />
      <!--選擇了文件輸出,注意粗體部分對應的名稱-->
      <appender-ref ref="ConsoleAppender" />
    </root>
  </log4net>
</configuration>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章