Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题。日志的作用:将运行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。Log4J是java的。

dll对应的xml文件是智能提示信息

使用步骤:

1、添加对log4net.dll的引用

2、在Web.Config (或App.Config)添加如下配置

  1. <configuration>
  2. <configSections>
  3. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  4. </configSections>
  5. <log4net>
  6. <!-- Define some output appenders -->
  7. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  8. <file value="test.txt"/>
  9. <appendToFile value="true"/>
  10. <maxSizeRollBackups value=""/>
  11. <maximumFileSize value="1024KB"/>
  12. <rollingStyle value="Size"/>
  13. <staticLogFileName value="true"/>
  14. <layout type="log4net.Layout.PatternLayout">
  15. <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
  16. </layout>
  17. </appender>
  18. <root>
  19. <level value="DEBUG"/>
  20. <appender-ref ref="RollingLogFileAppender"/>
  21. </root>
  22. </log4net>
  23. </configuration>

3、初始化:在程序最开始(global.asax的application_start里面)加入log4net.Config.XmlConfigurator.Configure();

4、在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息");  //第一个参数传的是哪个类要记录日志

以上配置完成之后可能会报错如下:

以上的意思是configSections必须是configuration的第一个子元素,把位置改一下就可以了,完整的配置如下:

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <configSections>
  4. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  5. </configSections>
  6. <!-- appSettings网站信息配置-->
  7. <appSettings>
  8. <add key="Configpath" value="~/xmlconfig/site.config"/>
  9. <add key="Urlspath" value="~/xmlconfig/urls.config"/>
  10. <add key="Userpath" value="~/xmlconfig/user.config"/>
  11. <add key="Orderpath" value="~/xmlconfig/order.config"/>
  12. </appSettings>
  13. <!-- 数据库连接字符串-->
  14. <connectionStrings>
  15.  
  16. </connectionStrings>
  17. <!--
  18. 有关 web.config 更改的说明,请参见 http://go.microsoft.com/fwlink/?LinkId=235367。
  19.  
  20. 可在 <httpRuntime> 标记上设置以下特性。
  21. <system.Web>
  22. <httpRuntime targetFramework="4.5" />
  23. </system.Web>
  24. -->
  25.  
  26. <log4net>
  27. <!-- Define some output appenders -->
  28. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  29. <file value="test.txt"/>
  30. <appendToFile value="true"/>
  31. <maxSizeRollBackups value=""/>
  32. <maximumFileSize value="1024KB"/>
  33. <rollingStyle value="Size"/>
  34. <staticLogFileName value="true"/>
  35. <layout type="log4net.Layout.PatternLayout">
  36. <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
  37. </layout>
  38. </appender>
  39. <root>
  40. <level value="DEBUG"/>
  41. <appender-ref ref="RollingLogFileAppender"/>
  42. </root>
  43. </log4net>
  44.  
  45. <system.web>
  46. <compilation debug="true" targetFramework="4.5"/>
  47. <customErrors mode="Off"/>
  48. <httpModules>
  49. <add type="EazyBPMS.Web.UI.HttpModule, EazyBPMS.Web.UI" name="HttpModule"/>
  50. </httpModules>
  51. <httpHandlers>
  52. <add verb="*" path="templates/main/*.html" type="System.Web.HttpForbiddenHandler"/>
  53. </httpHandlers>
  54. <!-- 文件上传大小KB-->
  55. <httpRuntime requestValidationMode="2.0" maxRequestLength="" executionTimeout=""/>
  56. <pages controlRenderingCompatibilityVersion="4.0"/>
  57. </system.web>
  58. <system.webServer>
  59. <validation validateIntegratedModeConfiguration="false"/>
  60. <modules runAllManagedModulesForAllRequests="true">
  61. <add type="EazyBPMS.Web.UI.HttpModule, EazyBPMS.Web.UI" name="HttpModule"/>
  62. </modules>
  63. <security>
  64. <requestFiltering>
  65. <requestLimits maxAllowedContentLength=""/>
  66. </requestFiltering>
  67. </security>
  68. </system.webServer>
  69. </configuration>

至此log4net已经可以跑起来了

为了方便使用推荐在每个页面类开始写如下代码

  1. private static ILog logger = LogManager.GetLogger(typeof(Global));

然后在需要记录日志的地方记录就可以了,例如:

  1. logger.Debug("Application_Start");

debug:一些调试信息你想加的看看到哪一步输出哪些参数都可以

error:错误信息  记得把异常也输出

warn:一些警告信息

Log4Net相关概念(*)

Appender:可以将日志输出到不同的地方,不同的输出目标对应不同的Appender:RollingFileAppender(滚动文件)、AdoNetAppender(数据库)、SmtpAppender (邮件)等。

level(级别):标识这条日志信息的重要级别。None>Fatal>ERROR>WARN>DEBUG>INFO>ALL,设定一个Level,那么低于这个Level的日志是不会被写到Appender中的。

Log4Net还可以设定多个Appender,可以实现同时将日志记录到文件、数据、发送邮件等;可以设定不同的Appender的不同的Level,可以实现普通级别都记录到文件,Error以上级别发送邮件;可以实现对不同的类设定不同的Appender;还可以自定义Appender,这样可以自己实现将Error信息发短信等。

(*)除了Log4Net,还有Enterprise Library中的Logging Application Block、Apache的CommonLog 以及NLog等,都差不多。

用Log4Net有什么好处?自己写文件不一样吗?灵活,可以不改代码只要改配置就可以做任意的控制。

常错:把项目的名字(本质上是程序集的名字)建成了log4net

asp.net中日志框架Log4Net的使用的更多相关文章

  1. asp.net MVC日志插件Log4Net学习笔记一:保存日志到本地

    log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过lo ...

  2. ASP.NET中iframe框架点击左边页面链接,右边显示链接页面内容

    首先是主页面main.aspx <body style="background-color: #AFEEEE"> <form id="form1&quo ...

  3. asp.net MVC日志插件Log4Net学习笔记二:保存日志到sqlserver的配置

    1.写到sqlserver的配置: <!--保存到SQLSERVER数据库日志--> <log4net> <appender name="AdoNetAppen ...

  4. asp.net core 集成 log4net 日志框架

    asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...

  5. 解读ASP.NET 5 & MVC6系列(9):日志框架

    框架介绍 在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net.NLog.CommonLogging使用起来多多少少都有些费劲,和java的SLF4J根本无法相比. ...

  6. [转]asp.net5中使用NLog进行日志记录

    本文转自:http://www.cnblogs.com/sguozeng/articles/4861303.html asp.net5中使用NLog进行日志记录 asp.net5中提供了性能强大的日志 ...

  7. asp.net5中使用NLog进行日志记录

    asp.net5中提供了性能强大的日志框架,本身也提供了几种日志记录方法,比如记录到控制台或者事件中等,但是,对大部分程序员来说,更喜欢使用类似log4net或者Nlog这种日志记录方式,灵活而强大. ...

  8. ASP.NET Core 6框架揭秘实例演示[13]:日志的基本编程模式[上篇]

    <诊断跟踪的几种基本编程方式>介绍了四种常用的诊断日志框架.其实除了微软提供的这些日志框架,还有很多第三方日志框架可供我们选择,比如Log4Net.NLog和Serilog 等.虽然这些框 ...

  9. log4net 日志框架的配置

    log4net 日志框架的配置——静态文件(一) 添加对log4net程序集的引用 选择程序集文件添加引用即可,需要注意的是需要添加相应程序版本的程序集,如果你的应用是基于.netFramework2 ...

随机推荐

  1. iOS开发之获取系统相册ALAssetLibrary

    注:当你选择看这篇博客时想必你的应用还支持iOS8一下系统,如果你的应用要求最低版本大于iOS8,建议使用PhotoKit框架,效率更高 ALAssetsLibrary包含,ALAssetsLibra ...

  2. iOS源代码管理svn

    01. SVN介绍 SVN 是集中式源代码管理工具 概念: 1> Repository   代码仓库,保存代码的仓库 2> Server       服务器,保存所有版本的代码仓库 3&g ...

  3. Mac标识物理位置算法 import Levenshtein mac列表特征值

    mac 字符串 与 基准字符串的 Levenshtein   距离,考虑  mac信号强度的时序性,60秒内若干次变化 不引入强度 mac字符串的唯一性 如何排序 基准字符串的选取 同一尺度 都按强度 ...

  4. Jquery实现loading效果

    需要引入jquery和bootstrap相关包,然后把下面的代码复制进去就可以了: <div class="modal fade" id="loadingModal ...

  5. socket编程python+c

    python版: server: def socket_loop_server_function(): HOST = '192.168.56.1' PORT = 21567 sk = socket.s ...

  6. Bootstrap 轮播图(Carousel)插件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 使用JSTL在页面前的空行怎么去除?

    解决的方法是:在每个JSP的头上加上一段代码   <%@ page trimDirectiveWhitespaces="true" %>

  8. C#练习委托、事件、事件处理

    控制台应用程序效果: 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  9. Spark集群搭建(local、standalone、yarn)

    Spark集群搭建 local本地模式 下载安装包解压即可使用,测试(2.2版本)./bin/spark-submit --class org.apache.spark.examples.SparkP ...

  10. fastjson 格式化自定义选项

    QuoteFieldNames———-输出key时是否使用双引号,默认为true WriteMapNullValue——–是否输出值为null的字段,默认为false WriteNullNumberA ...