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>
原文地址:https://www.cnblogs.com/falcon-fei/p/11060142.html