首页 > 其他分享 >winfrom 中配置log4日志

winfrom 中配置log4日志

时间:2022-10-19 09:35:21浏览次数:33  
标签:log4net log4 logerror winfrom loginfo 日志 config public

一、下载log4net组件

直接引入log4net.dll文件到引用,或者使用NuGet,搜索log4net下载到项目中

 

 

二、创建配置一个log4net.config文件(将此文件属性设置为:始终复制),文件内容为:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <!--错误日志类-->
    <logger name="logerror">
      <!--日志类的名字-->
      <level value="ALL" />
      <!--定义记录的日志级别-->
      <appender-ref ref="ErrorAppender" />
      <!--记录到哪个介质中去-->
    </logger>
    <!--信息日志类-->
    <logger name="loginfo">
      <level value="ALL" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <!--错误日志附加介质-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
      <param name="File" value="Log\\LogError\\" />
      <!--日志输出到exe程序这个相对目录下-->
      <param name="AppendToFile" value="true" />
      <!--输出的日志不会覆盖以前的信息-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--备份文件的个数-->
      <param name="MaxFileSize" value="10240" />
      <!--当个日志文件的最大大小-->
      <param name="StaticLogFileName" value="false" />
      <!--是否使用静态文件名-->
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <!--日志文件名-->
      <param name="RollingStyle" value="Date" />
      <!--文件创建的方式,这里是以Date方式创建-->
      <!--错误日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
    <!--信息日志附加介质-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!--信息日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
  </log4net>
</configuration>
View Code

 

 

三、在AssemblyInfo.cs中添加日志配置,在最下方添加如下代码:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

 

 

 

四、创建一个日志写入类(log4netHelper):

  public class log4netHelper
    {

        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");//loginfo 和 log4net.config 里的名字要一样
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");// logerror 和 log4net.config 里的名字要一样


        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }

        public static void WriteLog(string info, Exception ex)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, ex);
            }
        }
    }
View Code

 

五、完成后,在业务类中,直接调用log4netHelper类的日志写入,简单的一个配置就完成了

最终是以HTML的格式显示日志

 

如果日志没效果的话,在Program.cs中添加如下配置:

log4net.Config.XmlConfigurator.Configure();

 

标签:log4net,log4,logerror,winfrom,loginfo,日志,config,public
From: https://www.cnblogs.com/19930521zhang/p/16805056.html

相关文章

  • 04.大型数据库应用技术课堂测试05-日志数据分析-错误总结
    错误总结:1.ExpressionnotinGROUPBYkey'id'解决:在groupby子句中,select查询的列,要么需要是groupby中的列,要么得是用聚合函数(比如sum、count等)加工过的列。不......
  • 记录清理Oracle归档日志
    一、登录数据库1.切换到Oracle用户su命令–切换用户身份su命令来自于英文单词“switchuser”的缩写,其功能是用于切换用户身份。管理员切换至任意用户身份而无需密......
  • java日志commons-logging/log4j/slf4j/logBack需要知道的几件事
    如果对于commons-loging、log4j、slf4j、LogBack等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮......
  • MYSQL日志查看
    方法一:登录到mysql查看binlog获取binlog文件列表:mysql>showbinarylogs;查看当前使用的binlog文件:mysql>showmasterstatus;只查看第一个binlog文件的内容:mys......
  • kubernetes中使用filebeat收集单独应用日志
    ---apiVersion:v1kind:ConfigMapmetadata:name:filebeat-confignamespace:defaultlabels:app:filebeatdata:filebeat.yml:|-filebeat.inp......
  • #yyds干货盘点# 常用 Shell 分析服务器日志命令2
    9、访问次数最多的10个文件或页面catlog_file|awk'{print$11}'|sort|uniq-c|sort-nr|head-10catlog_file|awk'{print$11}'|sort|uniq-c|sort-nr|head-20awk'......
  • log4j配置文件详解
    【参考文章】:Log4j2中RollingFile的文件滚动更新机制1.配置文件示例<?xmlversion="1.0"encoding="UTF-8"?><!--ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATA......
  • mysql查看执行sql语句的记录日志
    1、使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。--useinformation_schema;--showprocesslist;或者:......
  • linux日志:zlog
    一、简述zlog是一个C语言的日志函数库,具有高可靠性、高性能、线程安全、灵活、概念清晰等优势。另外,开发者可以通过灵活的配置,实现日志记录同时向控制台输出、控制单个日......
  • Jenkins 对审计日志的支持
    今年是Jenkins项目首次参与Outreachy.Outreachy是一个类似于GoogleSummerofCode(GSoC)的项目,实习生有偿地为开源项目工作。关键的不同之处在于,Outreachy面向那......