第一步:下载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的资料请关注代码网其它相关文章!
发表评论