zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    Laravel update某一字段值为另一字段值
    Layui 批量
    CI 框架多表关联查询
    PHP数组函数
    PHP固定长度字符串
    PHP常用方法汇总
    CI 框架批量添加数据(如果数据库有就更新数据)
    使用nginx-http-concat优化网站响应
    mysql自动化安装
    SQL迁移到ORACLE实例
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/11060142.html
Copyright © 2011-2022 走看看