在winform项目里集成log4net日志控件

在winform项目里集成log4net日志控件

1、引用log4net.dll文件   备注:通过直接引用dll或使用nugit都可以

2、添加一个log4net.config文件,内容如下:

复制代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <root>
    </root>
    <logger name="Error">
      <level value="ALL" />
      <appender-ref ref="ErrorAppender" />
    </logger>
    <logger name="InfoLog">
      <level value="ALL" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" type="" value="Log/Error/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyyMMdd" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
        <param name="Header" value="-----------BEGIN-----------" />
        <param name="Footer" value="------------END------------" />
      </layout>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" type="" value="Log/Info/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyyMMdd" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
        <param name="Header" value="-----------BEGIN-----------" />
        <param name="Footer" value="------------END------------" />
      </layout>
    </appender>
  </log4net>
</configuration>
复制代码

注意:在这个config文件上点右键属性,让它始终复制或较新复制

如果日志文件没有后缀,需要修改

  • <!--当备份文件时,为文件名加的后缀,这里可以作为每一天的日志分别存储不同的文件-->
  •  
    <datePattern value="yyyyMMdd&quot;.txt&quot;" />

3、在Properties下的AssemblyInfo.cs文件时加一行:

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

如果找不到AssemblyInfo.cs文件时,此行也可以加在loghelper的命名空间前

//文件里添加下面代码,让程序启动时是找到Log4net.config配置文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = false)]

namespace WindowsFormsApplication3
{
public class LogHelper
{

 

在.net6 winform情况下,放到Properties下的AssemblyInfo.cs文件里不起作用,放到loghelper里起作用!!!!!!!!!!!

https://www.cnblogs.com/request/p/16597585.html

 

4、加一个Help类内容如下:

复制代码
public class log4netHelper
    {
        /// <summary>
        /// 普通日志
        /// </summary>
        /// <param name="message">日志内容</param>
        public static void Info(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("InfoLog");
            if (log.IsInfoEnabled)
            {
                log.Info(message);
            }
            log = null;
        }
        /// <summary>
        /// 错误日志
        /// </summary>
        /// <param name="message">错误日志</param>
        public static void Error(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Error");
            if (log.IsInfoEnabled)
            {
                log.Error(message);
            }
            log = null;
        }
    }
复制代码

5、使用示例如下:

log4netHelper.Info("这是一条普通日志");
log4netHelper.Error("这是一条错误日志");
posted @ 2022-03-09 16:48  _海阔天空  阅读(635)  评论(0编辑  收藏  举报