log4net的配置及使用
网上查了有很多种写法和配置,结果百度出来都是几种方法混合写法,拷在一起结果还不能正常运行。因此把自己做成功的代码写上来做个备份。
运行环境:log4net 2.03版本,.net 4.5
大体步骤为:
:新建一个log4net.config配置文件
:创建一个Logger静态类写日志
具体步骤为:
一:在App或者Web根目录创建一个log4net.config文件,完整内容如下:
一定要注意这就是完整的配置文件内容,有些文章里面说要把内容拷在<configuration>节点下,结果不能正常写日志
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="ERROR" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<file value="Logs\err.log" />
<encoding value="utf-8"/>
<preserveLogFileNameExtension value="true" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<file value="Logs\info.log" />
<encoding value="utf-8"/>
<preserveLogFileNameExtension value="true" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<file value="Logs\debug.log" />
<encoding value="utf-8"/>
<preserveLogFileNameExtension value="true" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="perfAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<file value="Logs\perf.log" />
<encoding value="utf-8"/>
<preserveLogFileNameExtension value="true" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="errorAppender" />
<appender-ref ref="infoAppender" />
<appender-ref ref="debugAppender" />
</root>
<logger name="Performance" additivity="false">
<level value="ALL" />
<appender-ref ref="perfAppender" />
</logger>
</log4net>
基本能看懂,这个配置方法定义了几个过滤器,把不同级别的日志写在不同名称的文件中,也可以修改配置写到一个日志文件中。
二:创建日志静态类
/// <summary>
/// 框架日志类
/// </summary>
public class WRLogger
{ static ILog _logger = null;
/// <summary>
/// 默认日志类
/// </summary>
static ILog logger
{
get
{
if (_logger == null)
{
log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));
_logger = LogManager.GetLogger("Performance");
}
return _logger;
}
}
/// <summary>
/// 记录信息日志
/// </summary>
/// <param name="msg"></param>
public static void Info(string msg)
{ logger.Info(msg);
}
/// <summary>
/// 记录调试日志,主要用于SQL或一些方法调用
/// </summary>
/// <param name="msg"></param>
public static void Debug(string msg) {
logger.Debug(msg);
}
/// <summary>
/// 记录错误日志
/// </summary>
/// <param name="msg"></param>
public static void Error(string msg) {
logger.Error(msg);
}
/// <summary>
/// 记录错误日志
/// </summary>
/// <param name="ex"></param>
public static void Error(Exception ex)
{
logger.Error(ex);
}
/// <summary>
/// 记录错误日志
/// </summary>
/// <param name="ex"></param>
/// <param name="msg"></param>
public static void Error(Exception ex,string msg)
{
logger.Error( msg+" "+ex.Message, ex);
} }
其中:
log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));
这句话特别关键,载入配置文件,这种方式载入,
    1:则不需要在“AssemblyInfo.cs”中写配置
    2:也不需要在app.config或者web.config中写任何关于log4net的配置信息
这样就可以直接使用了。												
											log4net的配置及使用的更多相关文章
- LOG4NET日志配置及使用
		Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ... 
- log4net的配置与使用
		log4net解决的问题是在.Net下提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括MS SQ ... 
- 将Log4net的配置配置到的独立文件中
		本文转载:http://blog.csdn.net/wanzhuan2010/article/details/7587780 另外一篇博客:http://grim1980.blog.sohu.com/ ... 
- Log4Net 日志配置[附带源码]
		前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ... 
- Log4Net详细配置
		关于Log4Net配置主要分几步 第一步:下载log4net.dll(log4net官网:http://logging.apache.org/log4net/download_log4net.cgi) ... 
- 日志管理-将Log4net的配置配置到的独立文件中
		转自:http://www.cnblogs.com/zfanlong1314/p/3662679.html使用log4net已经很久了.但从来没有详情了解log4的参数,及具体使用方法.看了周公的博客 ... 
- Log4net快速配置使用指南。(快速搭建log4net日志平台手册)
		每做一个新项目,都会用到log4net,但总是忘记如何快速配置.有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net. 直接上介绍的步骤 ... 
- C# log4net 的配置
		项目的日志组件是必备可少的,任何项目中都需要.这样既方便前期的开发测试也方便项目后期的项目维护.C#项目的一个不错的日志组件是log4net,下面我就把桌面应用程序.控制台程序.网站中log4net的 ... 
- log4net 日志配置及使用
		一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ... 
- log4net类库配置、WebService配置
		一.类库配置 结构如下图 1.LogUtility类 public class LogUtility { private static readonly log4net.ILog log = log4 ... 
随机推荐
- 2019阿里天猫团队Java高级工程师面试题之第三面
			2019阿里天猫团队Java高级工程师面试题之第一面 2019阿里天猫团队Java高级工程师面试题之第二面 1.说说MySQL的锁并发?加锁的机制是什么? https://www.cnblogs.co ... 
- Asp .Net Core  Excel导入和导出
			ASP .Net Core使用EPPlus实现Api导入导出,这里使用是EPPlus 4.5.2.1版本,.Net Core 2.2.在linux上运行的时候需要安装libgdiplus . 下面我们 ... 
- C#_.NetFramework_Web项目_EXCEL数据导出
			[推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出] 项目需引用NPOI的NuGet包: A-2:EXCEL数据导出--Web项目--C#代码导出 ... 
- 深入requests库params|data|json参数
			深入requests库params|data|json参数 一.params params:字典或者字节序列,作为参数增加到URL中.不仅访问URL,还可以向服务器携带参数. 简单来讲也就是说对于原来 ... 
- 写了个爬虫代理ip的脚本给大家使用
			写了个爬虫代理ip的脚本给大家使用 一.代码 import requests from lxml.html import etree url = 'http://www.kuaidaili.com/f ... 
- 使用npm link 加速调试
			我们在把包发布到npm上时,如果需要对本地的包进行修改,我们需要改变一个版本,重新发布.然后测试时需要更新这个包进行测试.这样的话,每一次的调试都特别麻烦.我们可以使用npm link来加速这个调试过 ... 
- SQLi-LABS Page-3 (order by injections) Less-46-Less-53
			关于order by 注入原理讲解 注入原理 1. 测试 ?sort=1 desc--+?sort=1 asc--+ 显示结果不同,说明可以注入 desc是 descend 降序意思 asc 是 as ... 
- 【转】Kotlin的inline内联函数
			原文链接:https://blog.csdn.net/Jaden_hool/article/details/78437947 方法调用流程 调用一个方法是一个压栈和出栈的过程,调用方法时将栈针压入方法 ... 
- 037.[转] springboot 配置多个数据源
			1.在application.properties文件 配置两个数据源 #默认使用 tomcat-jdbc spring.datasource.type=org.apache.tomcat.jdbc. ... 
- 40-用 volume container 共享数据
			volume container 是专门为其他容器提供 volume 的容器.它提供的卷可以是 bind mount,也可以是 docker managed volume.下面我们创建一个 volum ... 
