开发中经常使用到日志记录功能,Log4.net可以将日志记录到文件中,也可以记录到数据库中,使用非常方便,之前也一直在用,最近也参照了一下网上的资料,想简单总结一下

本文重在通过通用日志类来使用Log4.net, 至于如何配置Log4.Net节点,网上的资料很多,这里没有提到

1.首先创建一个Log4.Net的公共操作类

 /// <summary>
/// log4net日志专用
/// </summary>
public class LogHelper
{
private static readonly log4net.ILog Instance = log4net.LogManager.GetLogger("loginfo"); public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
} public static void SetConfig(string filePath)
{
FileInfo configFile = new FileInfo(filePath);
log4net.Config.XmlConfigurator.Configure(configFile);
} public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
} /// <summary>
/// 记录普通文件记录
/// </summary>
/// <param name="info"></param>
public static void Info(string info)
{
if (Instance.IsInfoEnabled)
{
Instance.Info(info);
}
} /// <summary>
///记录调试信息
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void Debug(string info)
{
if (Instance.IsErrorEnabled)
{
Instance.Debug(info);
}
} /// <summary>
///记录警告信息
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void Warn(string info)
{
if (Instance.IsWarnEnabled)
{
Instance.Warn(info);
}
} /// <summary>
/// 记录错误日志
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void Error(string info, Exception se)
{
if (Instance.IsErrorEnabled)
{
Instance.Error(info, se);
}
} /// <summary>
/// 记录严重错误
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void Fatal(string info, Exception se)
{
if (Instance.IsFatalEnabled)
{
Instance.Fatal(info, se);
}
} }

2.注册Log4.net 的配置信息,本人喜欢后面2中方式配置,这样其他程序集(如Business程序集)需要记录日志时,不需要再配置log4.net了,直接调用日志公共类即可

(1)可以在应用程序启动时注册Log4.net配置信息(如Global.asax中),不过其他程序集如果要记录日志时,需要重新配置log4.net信息

  protected void Application_Start(object sender, EventArgs e)
{
//加载日志配置文件,只需要在程序启动时加载一次
string filePath = AppDomain.CurrentDomain.BaseDirectory + "Log4net.config";
LogHelper.SetConfig(filePath);
}

(2)在日志公共类LogHelper.cs所在程序集的AssemblyInfo.cs文件中进行注册

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]

(3)在日志公共类LogHelper.cs的命名空间上进行注册

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]
namespace LogUtility
{
/// <summary>
/// log4net日志专用
/// </summary>
public class LogHelper
{
    ....
}

3. 记录日志

   protected void Page_Load(object sender, EventArgs e)
{
#region 通过公共类调用 //跨程序集调用写入Log日志
Services.TestService.TestLog(); //记录一般信息
LogHelper.Info("info");
//记录调试信息
LogHelper.Debug("debug");
//记录警告信息
LogHelper.Warn("warn"); //记录错误日志
LogHelper.Error("error", new Exception("发生了一个异常"));
//记录严重错误
LogHelper.Fatal("fatal", new Exception("发生了一个致命错误")); #endregion 通过公共类调用 Response.Write("日志记录完毕。</br>"); }

4. 参考资料,参考了下面一些内容

http://blog.csdn.net/zhoufoxcn/article/details/2220533 
http://blog.csdn.net/zhoufoxcn/article/details/6029021 
http://www.cnblogs.com/ringwang/archive/2012/07/06/2579775.html
http://www.cnblogs.com/zfanlong1314/p/3662679.html

5.本例的代码(演示了在WinForm、WebForm上的使用配置)

(1)直接在应用启动时注册

Log4NetSolution.zip

(2)在公共日志类中注册

Log4NetNewSolution.zip

Log4.net使用配置的更多相关文章

  1. log4net截取配置错误信息,(验证配置信息是否配置正确)

    在</system.web>之后 <!--log4错误日志配置:开始--> <system.diagnostics> <trace autoflush=&qu ...

  2. Java使用Log4记录日志

    我们在系统使用中,为了方便查找问题,因此需要记录操作的日志,而目前比较成熟稳定的程序日志记录方式就是Log4,本人也是菜鸟,然后再学习研究中就记录一下使用方式,以方便今后查阅,同时本文章参考了博客园: ...

  3. log4net使用介绍

    log4net是一款开源的日志工具,现已挂在apache基金会下.非常简单灵活,初学者有时会发现log4参照资料配置好,但并不输出日志.这种情况,一般是没有准确定位到配置文件.可参阅第3步. 下载 下 ...

  4. 初学ssm框架的信息

    ssm框架,就是Spring ,SpringMVC ,mybstis 的简称,我们是从mybstis 开始学起的,mybatis的作用作为一个连接数据库的框架,可以很好配置连接好数据库, 有mybat ...

  5. 立即掌握SSM框架的要诀

    ssm框架的总结: 1. 首先是POM.xml 文件的配置,他的作用主要是添加依懒的关系和自动下载相关的包. 2.对jdbc.properties进行配置 ,作用就是连接你的数据库的配置. 3.对接着 ...

  6. log4j和logback

    Log4j和logback Log4j简介 Log4j(log for java) 1.是Apache的一个开源项目: 2.是使用Java语言编写的一个日志框架: 3.用于记录程序中的日志信息: 4. ...

  7. java深入探究11-基础加强

    1. ? extends String:String 子类;? super String:String 父类 2.反射->参数化类型表示 ParameteredType:参数化类型表示,就是获得 ...

  8. 自定义log4j的appender写es日志

    本篇和大家分享的是自定义log4j的appender,用es来记录日志并且通过kibana浏览es记录:就目前互联网或者一些中大型公司通常会用到第三方组合elk,其主要用写数据到es中,然后通过可视化 ...

  9. Maven工具-简介

    Maven工具-简介 定义 ①maven是一款服务于java平台的自动化构建工具 make→Ant→maven→Gradle ②构建 [1]概念:以"java源文件"." ...

随机推荐

  1. flex中DataGrid里使用itemRenderer后数据无法绑定到数据源的问题

    <?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="ht ...

  2. 百度语音识别REST API——通过使用Http网络请求方式获得语音识别功能

    百度语音识别通过REST API的方式给开发人员提供一个通用的HTTP接口,基于该接口,开发人员能够轻松的获取语音识别能力,本文档描写叙述了使用语音识别服务REST API的方法. 长处: 较之开发人 ...

  3. Codeforces Round #313 (Div. 1) B. Equivalent Strings DFS暴力

    B. Equivalent Strings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/559 ...

  4. Android 数据库打包随APK发布

    有些时候我们的软件用到SQLite数据库,这个时候怎么把一个做好的数据库打包进我们的APK呢,其实很简单,就是把我们的数据库文件放到我们的手机里,所以不必局限在哪个地方写这个代码,在第一次创建数据库的 ...

  5. Some tips on using HashSet<T> and List<T>

    This article is written based on my colleague's review Most of the times, when I want to use a colle ...

  6. 【JavaScript】关于JS中的constructor与prototype

    最初对js中 object.constructor 的认识: 在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下 ...

  7. java课堂练习之可变參数与卫条件

    /*  有人邀请A,B,C,D,E,F 6个人參加一项会议,这6个人有些奇怪.由于他们有非常多要求,已知:  1)A,B两人至少有1人參加会议:  2)A,E,F 3人中有2人參加会议.  3)B和C ...

  8. 自增锁ID复用问题

    mysql> select * from pp; +----+------+ | id | name | +----+------+ | xx | | xx | | xx | | xx | | ...

  9. String当中的高效函数(优化)

    1. indexOf()函数是一个执行速度非常快的函数,可以用其与subString()实现高效的字符串分割,比内置的要高效. 2. charAt()方法也是高效率的函数,可以用其实现高效的start ...

  10. 在Dropbox上搭建私有的Git仓库的教程

    导读 Git版本控制系统需要一个服务器端,而GitHub上要想创建私有的Git服务器端仓库则触及到收费项目,于是这里我们利用Dropbox的免费空间,来看一下在Dropbox上搭建私有的Git仓库的教 ...