在前面的随笔中,已经异常处理过滤器中,我们已经将获取到的错误信息写到队列中去,然后又单独的线程对队列中的错误信息处理,将错误信息输出到制定的文件中,但是如果我们需要改变需求,打算将错误信息输出到数据库中去,此时就需要重新编写导出的代码,比较麻烦,所以我们可以使用一个日志处理的组件Log4Net,我们只需要在配置文件中完成相应的配置,就可以实现上述的功能。Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过
日志查看系统的运行过程,从而发现系统的问题。日志的作用:将运行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。

Log4Net的使用

1.添加引用log4net.dll

2.配置web.Config文件

例如将日志信息保存到文档中的配置如下:

 <configSections>

    <!--log4net的配置-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--log4net配置-->
<log4net>
<!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
<!-- Set root logger level to ERROR and its appenders -->
<root>
<level value="ALL"/>
<appender-ref ref="SysAppender"/>
</root> <!-- Print only messages of level DEBUG or above in the packages -->
<logger name="WebLogger">
<level value="ERROR"/>
</logger> <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="App_Data/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
</log4net> <!--log4net配置结束-->

(3)日志系统必须在程序一开始运行就要读取配置文件,创建处理类,所以应该在global文件的Application_Start的开始位置添加

log4net.Config.XmlConfigurator.Configure();

(4)然后在单独开的线程,创建出log处理类,然后通过日志组件将错误信息输出

 //将错误写到日志中取
//File.AppendAllText(filePath + DateTime.Now.ToString("yyyy-MM-dd")+".txt", ex.ToString(), System.Text.Encoding.UTF8);
//如果项目想要将日志写在数据库或者其他的操作方式而不是写在文件中,那么我们将要修改项目代码,所以使用日志记录组件log4net,只要修改配置文件就可以很简单的实现
ILog logger = LogManager.GetLogger("errorMsg");
logger.Error(ex);

最新文章

  1. Spark1.0新特性--&gt;Spark SQL
  2. 【HDU 5387】Clock
  3. 基于Cloudera Manager5配置HIVE压缩
  4. 用GDB调试多进程程序
  5. Unity角色残影特效
  6. 20180903 - Python Pip 工具下载whl包与离线安装
  7. Linux学习: LCD驱动
  8. 使用MediaPlayer类和SurfaceView来播放视频
  9. Webpack 学习2
  10. 从xml文件取值
  11. ELF文件结构描述
  12. Ironic 安装和配置详解
  13. flask中cookie,session的存储,调用,删除 方法(代码demo)
  14. Combobox实现多项选择 Silverlight下“Combobox”怎样实现多项选择?
  15. Filebeat配置paths里,不支持递归所有子目录
  16. yyyy-MM-dd HH:mm:ss is Invalid Date in Safari, IE等浏览器下
  17. URAL 1698
  18. 013:Rank、视图、触发器、MySQL内建函数
  19. spring3: 内置Resource实现
  20. krpano之字幕添加

热门文章

  1. 【转】【Android】Android不同版本下Notification创建方法
  2. e661. 确定图像中是否有透明像素
  3. Zookeeper 应用程序
  4. 让Android 变身回一台真正的Linux系统吧!!!
  5. php下保存远程图片到本地的函数
  6. 【LeetCode】Validate Binary Search Tree 二叉查找树的推断
  7. 【转载】Redhat5和6 YUM源配置的区别
  8. 你真的了解HTML吗?–雅虎面试题
  9. 【SJSB】 android-javascript开发框架
  10. Java精选笔记_IO流(字符输入输出流、字符文件输入输出流、字符流的缓冲区)