开发中经常使用到日志记录功能,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. Qt技巧:QProcess与外部程序的调用

    项目做到一定阶段,常常须要在原来的project上调用外部程序. Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信. 一.启动外部程序的两种方式: (1)一体式 ...

  2. 删除重复记录(Mysql,SqlServer,Sqlite)

    Mysql中有重复的数据: ) )> order by count() desc 删除一下吧: delete a from t_resource_apptype_releation as a, ...

  3. 2014 年10个最佳的PHP图像操作库--留着有用

    Thomas Boutell 以及众多的开发者创造了以GD图形库闻名的一个图形软件库,用于动态的图形计算. GD提供了对于诸如C, Perl, Python, PHP, OCaml等等诸多编程语言的支 ...

  4. tcpdump抓包分析具体解释

    說實在的,對於 tcpdump 這個軟體來說,你甚至能够說這個軟體其實就是個駭客軟體, 因為他不但能够分析封包的流向,連封包的內容也能够進行『監聽』, 假设你使用的傳輸資料是明碼的話,不得了,在 ro ...

  5. CloudStack的VO在调用setRemoved方法抛异常的原因

    今天在开发中发现一个问题,本来想对一个VO对象的removed值赋值,然后去update一下这条记录,一个最简单的set方法,但是在调用时直接抛异常了. 1: public void setRemov ...

  6. iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)   前面我们介绍了StoryBoard这个新技术,和纯技术 ...

  7. iOS开发——图层OC篇&UIColor深入研究(CGColor,CIColor)

    UIColor深入研究(CGColor,CIColor) 由于跟人比较喜欢研究关于图层与动画方面的技术,正打算看看别人写的好东西,就遇到了好几个问题, 第一:UIClor类方法的使用 就是关于UICo ...

  8. cocos2d-html5 笔记3: Node

    Cocos2d采用类似于Dom tree的那种形式来各个部分组织起来.最基本的基类是Node吧, Node Node 作为基类,函数很多,我觉得可以分为如下几类,树相关的函数, 一些公共的比较实用的函 ...

  9. 如何使用strace+pstack利器分析程序性能

    http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html

  10. Qt动画效果的实现,QPropertyAnimation

    Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnima ...