1. using log4net;
  2. using log4net.Config;
  3. using System;
  4. using System.IO;
  5.  
  6. namespace Three.Logging
  7. {
  8. /// <summary>
  9. /// 基于log4net的日志工具,需要拷贝Log4Net.config到要使用日志的程序目录,具体配置查阅log4net帮助,此处不赘述
  10. /// </summary>
  11. public static class Logger
  12. {
  13. private static readonly ILog logdebug = LogManager.GetLogger("logdebug");
  14. private static readonly ILog loginfo = LogManager.GetLogger("loginfo");
  15. private static readonly ILog logerror = LogManager.GetLogger("logerror");
  16.  
  17. static Logger()
  18. {
  19. var path = AppDomain.CurrentDomain.BaseDirectory + @"\Log4net.config";
  20. XmlConfigurator.ConfigureAndWatch(new FileInfo(path));
  21. }
  22.  
  23. /// <summary>
  24. /// 写DEBUG日志
  25. /// </summary>
  26. /// <param name="debug">日志内容</param>
  27. public static void Debug(string debug)
  28. {
  29. if (logdebug.IsDebugEnabled)
  30. {
  31. logdebug.Debug(debug);
  32. }
  33. }
  34.  
  35. /// <summary>
  36. /// 写DEBUG日志
  37. /// </summary>
  38. /// <param name="debug">日志内容</param>
  39. /// <param name="ex">将异常信息也写入日志</param>
  40. public static void Debug(string debug, Exception ex)
  41. {
  42. if (logdebug.IsDebugEnabled)
  43. {
  44. if (ex == null)
  45. {
  46. logdebug.Debug(debug);
  47. }
  48. else
  49. {
  50. logdebug.Debug(debug, ex);
  51. }
  52. }
  53. }
  54.  
  55. /// <summary>
  56. /// 写Info信息到日志
  57. /// </summary>
  58. /// <param name="info">日志内容</param>
  59. public static void Info(string info)
  60. {
  61. if (loginfo.IsInfoEnabled)
  62. {
  63. loginfo.Info(info);
  64. }
  65. }
  66.  
  67. /// <summary>
  68. /// 写error信息到日志
  69. /// </summary>
  70. /// <param name="error">日志内容</param>
  71. public static void Error(string error)
  72. {
  73. if (logerror.IsErrorEnabled)
  74. {
  75. logerror.Error(error);
  76. }
  77. }
  78.  
  79. /// <summary>
  80. /// 写error信息到日志
  81. /// </summary>
  82. /// <param name="error">日志内容</param>
  83. /// <param name="ex">将异常信息也写入日志</param>
  84. public static void Error(string error, Exception ex)
  85. {
  86. if (logerror.IsErrorEnabled)
  87. {
  88. if (ex == null)
  89. {
  90. logerror.Error(error);
  91. }
  92. else
  93. {
  94. logerror.Error(error, ex);
  95. }
  96. }
  97. }
  98.  
  99. private static string FormatErrorMsg(Exception ex)
  100. {
  101. var errorMsg = string.Format("【异常类型】:{0} <br>【异常信息】:{1} <br>【堆栈调用】:{2}",
  102. new object[] {ex.GetType().Name, ex.Message, ex.StackTrace});
  103. errorMsg = errorMsg.Replace("\r\n", "<br>");
  104. errorMsg = errorMsg.Replace("位置", "<strong style='color:red;'>位置</strong><br>");
  105. return errorMsg;
  106. }
  107. }
  108. }

  

C# Log4Net使用示例的更多相关文章

  1. log4net简单配置内容

    首先将log4net.dll下载来,添加到项目引用中: 在assembly文件最后面加(其实没关系的): [assembly: log4net.Config.XmlConfigurator(Confi ...

  2. 【记录】.net 通用log4net日志配置

    asp.net mvc 1.引入log4netNuGet包. 2.修改Global.asax下的Application_Start方法.加入log4net.Config.XmlConfigurator ...

  3. Log4net(二)-——关联配置文件的方式总结

    关联配置文件的方式总结 以控制台应用程序为例,在.net mvc项目中默认的配置位置为Web.config,其他的配置都一样 1.配置在AppConfig中 在控制台应用程序中,如果我们把Log4ne ...

  4. Log4net系列二:Log4net邮件日志以及授权码

    Log4net邮件发送 上篇文章我们主要介绍Log4net生成文本格式,本篇文章主要配置邮箱发送.关于项目的引用,搭建我们就不在描述,如果不太清楚,请看上篇文章, 老规矩,我们现在配置文件中添加一个a ...

  5. Log4Net 配置日志按日期和日志级别分类写入

    配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...

  6. 实战项目:通过当当API将订单抓取到SAP(二)

    上一篇博客,我们引用了log4net 这个.这里简单介绍下,为什么引用这个. log4net是记录程序日志信息的,是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控 ...

  7. Topshelf 一个简化Windows服务开发的宿主服务框架

    Topshelf是 基于.net框架开发的宿主服务框架.该框架简化了服务的创建,开发人员只需要使用 Topshelf编写一个控制台程序,就能安装为Windows服务.之所以这样原因非常简单:调试一个控 ...

  8. log4net示例2-日志输入存入Access(转)

    需求:基于log4net组建,创建Console程序将日志输出到Access数据库. 具体实施: (1)创建控制台程序. (2)控制台程序中,添加一个纯文本文件,文件命名为“log-Access.se ...

  9. Log4Net日志的简单使用示例

    前言 源码参考示例地址 http://www.51aspx.com/Code/log4netusedemo/2707 本例博客园源码 https://files.cnblogs.com/files/m ...

随机推荐

  1. 通过IIS共享文件夹来实现静态资源"本地分布式"部署

    以下以文件型数据库(如sqlite)为例 楼主话:以下内容,若有不专业处,大胆喷,虚心求教. 起因:要进行一个项目的分布式部署,而这个项目所涉及的其中一个数据库为sqlite(经测试,同为文件型数据库 ...

  2. 10 ajax

    Ajax准备知识:json 什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w ...

  3. html5兼容处理&sublime text3配置html5环境

    1.为了兼容低版本的浏览器解析不了hmtl5标签,要在html文件中head内引入html5shiv.min.js文件 <!--[if lt IE 9]> <script src=& ...

  4. 宝石TD迷宫设计器

    说起宝石TD,能追溯到我上高二那会,算来是2005年. 所谓一款TD类的魔兽RPG,宝石TD可以算是达到了TD迷宫的巅峰,三进三出更是别具匠心. 这个迷宫设计器是去年在焦作做的,只完成了迷宫设计功能, ...

  5. 【Binary Tree Right Side View 】cpp

    题目: Given a binary tree, imagine yourself standing on the right side of it, return the values of the ...

  6. Bat 修改 xml 文件标签值

    xml 文件如下: <ConfigurationData> <ReportsFolder>\Reports</ReportsFolder> <Helpfold ...

  7. install ironic-inspector

    安装相应的包和组件 yum install openstack-ironic-inspector python-ironic-inspector-client -y 创建user openstack ...

  8. Java 复习计划

    前言 打算下学期开学,也就是九月份,去找实习,现在还有三个月时间.(然而还在天天玩 Python..) 定个复习计划. 1. 基础 并发:Java并发编程实战 [ x ] SQL:MySQL,看看书, ...

  9. BETA0

    目录 过去存在的问题 任务分工 规范 后端总结 卉卉 家灿 前端总结 绪佩 青元 恺琳 宇恒 丹丹 算法&API接口 家伟 鸿杰 一好 文档&博客撰写 政演 产品功能 我们已经坐了哪些 ...

  10. hdu1877进制转换

    #include <stdio.h> int m; void Ck(int n) { if(n>=m) Ck(n/m); printf("%d",n%m); } ...