欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

log4net快速上手

程序员文章站 2022-05-24 18:29:26
原文地址:https://www.cnblogs.com/lsgsanxiao/p/5845300.html 略有删改 1.配置文件,可以单独创建log4net.config文件,然后手动指定目录,也可以在项目的app.config或web.config的configuration节点下插入以下代码 ......

原文地址:https://www.cnblogs.com/lsgsanxiao/p/5845300.html

略有删改


1.配置文件,可以单独创建log4net.config文件,然后手动指定目录,也可以在项目的app.config或web.config的configuration节点下插入以下代码

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configsections>
<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="data//weblog//logerror//" />
<!--是否追加到文件-->
<param name="appendtofile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="maxsizerollbackups" value="100" />
<param name="maxfilesize" value="1024" />
<!--是否只写到一个文件中-->
<param name="staticlogfilename" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="datepattern" value="yyyymm/dd&quot;.log&quot;" />
<!--按照何种方式产生多个日志文件(日期[date],文件大小[size],混合[composite])-->
<param name="rollingstyle" value="date" />
<layout type="log4net.layout.patternlayout">
<param name="conversionpattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />
</layout>
</appender>
<appender name="infoappender" type="log4net.appender.rollingfileappender">
<!--设置日志存储路径-->
<param name="file" value="data//weblog//loginfo//" />
<!--是否追加到文件-->
<param name="appendtofile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="maxsizerollbackups" value="100" />
<param name="maxfilesize" value="1024" />
<!--是否只写到一个文件中-->
<param name="staticlogfilename" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="datepattern" value="yyyymm/dd&quot;.log&quot;" />
<!--按照何种方式产生多个日志文件(日期[date],文件大小[size],混合[composite])-->
<param name="rollingstyle" value="date" />
<layout type="log4net.layout.patternlayout">
<param name="conversionpattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n消息描述:%c [%x] %n%m %n " />
</layout>
</appender>
</log4net>
</configuration>

 

2.读取配置
在项目启动文件里加入读取配置的代码,可以说program.cs或者global.cs等
如果是直接卸载项目配置文件下,用这种方式读取

log4net.config.xmlconfigurator.configure();

如果是单独写的log4net.config文件,则需要把文件路径传给configure()方法

var fi = new system.io.fileinfo(path);
log4net.config.xmlconfigurator.configure(fi);

3.帮助类

/// <summary> 
/// loghelper的摘要说明。 
/// </summary> 
public class loghelper {
/// <summary>
/// 静态只读实体对象info信息
/// </summary>
public static readonly log4net.ilog loginfo = log4net.logmanager.getlogger("loginfo");
/// <summary>
/// 静态只读实体对象error信息
/// </summary>
public static readonly log4net.ilog logerror = log4net.logmanager.getlogger("logerror");

/// <summary>
/// 添加info信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
public static void writelog(string info) {
try {
if (loginfo.isinfoenabled) {
loginfo.info(info);
}
} catch { }
}


/// <summary>
/// 添加异常信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
/// <param name="ex">异常信息</param>
public static void writelog(string info, exception ex) {
try {
if (logerror.iserrorenabled) {
logerror.error(info, ex);
}
} catch { }
}
}