当前位置: 代码网 > it编程>编程语言>C# > C#使用log4net的3种调用方法

C#使用log4net的3种调用方法

2024年05月20日 C# 我要评论
第一步:下载log4net右键项目引用,进入管理nuget包。搜索log4net,下载安装。第二步:创建loghelper类public class loghelper { pri

第一步:下载log4net

右键项目引用,进入管理nuget包。

搜索log4net,下载安装。

第二步:创建loghelper类

public class loghelper
    {
        private loghelper()
        {
 
        }
        public static readonly log4net.ilog loginfo = log4net.logmanager.getlogger("loginfo");
        public static readonly log4net.ilog logerror = log4net.logmanager.getlogger("logerror");
        public static void setconfig()
        {
            log4net.config.xmlconfigurator.configure();
        }
        public static void setconfig(fileinfo configfile)
        {
            log4net.config.xmlconfigurator.configure(configfile);
        }
        public static void writelog(string info)
        {
            if (loginfo.isinfoenabled)
            {
                loginfo.info(info);
            }
        }
        public static void writelog(string info, exception se)
        {
            if (logerror.iserrorenabled)
            {
                logerror.error(info, se);
            }
        }
    }

第三步:配置log4net并输出日志,下面介绍三种调用方法

方法一:在已有app.config中配置log4net

app.config代码如下。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 
  <configsections>
   <!-- log4net的定义 -->
    <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler,log4net" />
  </configsections>
  
  <log4net>
    <logger name="logerror">
      <level value="error" />
      <appender-ref ref="errorappender" />
    </logger>
    <logger name="loginfo">
      <level value="info" />
      <appender-ref ref="infoappender" />
    </logger>
 
    <appender name="errorappender" type="log4net.appender.rollingfileappender">
      <param name="file" value="log\\logerror\\" />
      <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;.txt&quot;" />
      <param name="rollingstyle" value="date" />
      <layout type="log4net.layout.patternlayout">
        <param name="conversionpattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
      </layout>
     <!--&lt; &gt; = <> %n = 回车-->
    </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;.txt&quot;" />
      <param name="rollingstyle" value="date" />
      <layout type="log4net.layout.patternlayout">
        <param name="conversionpattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
      </layout>
    </appender>
  </log4net>
  
</configuration>

在项目的 assemblyinfo.cs 文件中注册config文件

[assembly: log4net.config.xmlconfigurator(configfileextension = "config", watch = true)]

主程序调用:

public mainwindow()
        {
            initializecomponent();
            loghelper.writelog("我是loghelper日志输出:在已有app.config中配置log4net");
        }

运行结果:

方法二:项目中创建新的log4net.config文件

首先右键项目,添加新建项,添加新的应用程序配置文件log4net.config,log4net配置信息和方法一相同。

log4net.config代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <logger name="logerror">
      <level value="error" />
      <appender-ref ref="errorappender" />
    </logger>
    <logger name="loginfo">
      <level value="info" />
      <appender-ref ref="infoappender" />
    </logger>
    <appender name="errorappender" type="log4net.appender.rollingfileappender">
      <param name="file" value="log\\logerror\\" />
      <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;.txt&quot;" />
      <param name="rollingstyle" value="date" />
      <layout type="log4net.layout.patternlayout">
        <param name="conversionpattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
      </layout>
      <!--&lt; &gt; = <> %n = 回车-->
    </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;.txt&quot;" />
      <param name="rollingstyle" value="date" />
      <layout type="log4net.layout.patternlayout">
        <param name="conversionpattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
      </layout>
    </appender>
  </log4net>
</configuration>

再设置log4net.config的属性:将 “复制到输出目录” 的值改为 如果较新则复制。

然后在项目的 assemblyinfo.cs 文件中注册config文件:

[assembly: log4net.config.xmlconfigurator(configfile = "log4net.config", configfileextension = "config", watch = true)]

configfile: 配置文件名和路径,包括扩展名,文件相对于程序的根目录。

configfileextension:配置文件的后缀名,缺省默认时'config',此属性不可和configfile属性公用。

最后主程序调用:

public mainwindow()
        {
            initializecomponent();
            loghelper.writelog("我是loghelper日志输出:在项目中创建新的log4net.config文件");
        }

运行结果:

方法三:显示调用配置文件

首先创建log4net.xml配置文件,代码如下。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <logger name="logerror">
      <level value="error" />
      <appender-ref ref="errorappender" />
    </logger>
    <logger name="loginfo">
      <level value="info" />
      <appender-ref ref="infoappender" />
    </logger>
    <appender name="errorappender" type="log4net.appender.rollingfileappender">
      <param name="file" value="log\\logerror\\" />
      <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;.txt&quot;" />
      <param name="rollingstyle" value="date" />
      <layout type="log4net.layout.patternlayout">
        <param name="conversionpattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
      </layout>
      <!--&lt; &gt; = <> %n = 回车-->
    </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;.txt&quot;" />
      <param name="rollingstyle" value="date" />
      <layout type="log4net.layout.patternlayout">
        <param name="conversionpattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
      </layout>
    </appender>
  </log4net>
</configuration>

使用loghelper类中setconfig(fileinfo configfile)方法配置log4net。 log4net.config.xmlconfigurator.configure(fileinfo(path)),path为log4net.xml的全路径。

主程序调用:

 public mainwindow()
        {
            initializecomponent();
            loghelper.setconfig(new fileinfo("d:\\log4netdemo\\log4net.xml"));
            loghelper.writelog("我是loghelper日志输出:显示调用");
        }

运行结果:

三种调用方法,都能够正常打印日志。

以上就是c#使用log4net的3种调用方法的详细内容,更多关于c#使用log4net的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com