第一步:下载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".txt"" />
<param name="rollingstyle" value="date" />
<layout type="log4net.layout.patternlayout">
<param name="conversionpattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
</layout>
<!--< > = <> %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".txt"" />
<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".txt"" />
<param name="rollingstyle" value="date" />
<layout type="log4net.layout.patternlayout">
<param name="conversionpattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
</layout>
<!--< > = <> %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".txt"" />
<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".txt"" />
<param name="rollingstyle" value="date" />
<layout type="log4net.layout.patternlayout">
<param name="conversionpattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
</layout>
<!--< > = <> %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".txt"" />
<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的资料请关注代码网其它相关文章!
发表评论