asp.net中日志框架Log4Net的使用
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题。日志的作用:将运行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。Log4J是java的。
dll对应的xml文件是智能提示信息
使用步骤:
1、添加对log4net.dll的引用
2、在Web.Config (或App.Config)添加如下配置
- <configuration>
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
- </configSections>
- <log4net>
- <!-- Define some output appenders -->
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="test.txt"/>
- <appendToFile value="true"/>
- <maxSizeRollBackups value=""/>
- <maximumFileSize value="1024KB"/>
- <rollingStyle value="Size"/>
- <staticLogFileName value="true"/>
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
- </layout>
- </appender>
- <root>
- <level value="DEBUG"/>
- <appender-ref ref="RollingLogFileAppender"/>
- </root>
- </log4net>
- </configuration>
3、初始化:在程序最开始(global.asax的application_start里面)加入log4net.Config.XmlConfigurator.Configure();
4、在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息"); //第一个参数传的是哪个类要记录日志
以上配置完成之后可能会报错如下:
以上的意思是configSections必须是configuration的第一个子元素,把位置改一下就可以了,完整的配置如下:
- <?xml version="1.0"?>
- <configuration>
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
- </configSections>
- <!-- appSettings网站信息配置-->
- <appSettings>
- <add key="Configpath" value="~/xmlconfig/site.config"/>
- <add key="Urlspath" value="~/xmlconfig/urls.config"/>
- <add key="Userpath" value="~/xmlconfig/user.config"/>
- <add key="Orderpath" value="~/xmlconfig/order.config"/>
- </appSettings>
- <!-- 数据库连接字符串-->
- <connectionStrings>
- </connectionStrings>
- <!--
- 有关 web.config 更改的说明,请参见 http://go.microsoft.com/fwlink/?LinkId=235367。
- 可在 <httpRuntime> 标记上设置以下特性。
- <system.Web>
- <httpRuntime targetFramework="4.5" />
- </system.Web>
- -->
- <log4net>
- <!-- Define some output appenders -->
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="test.txt"/>
- <appendToFile value="true"/>
- <maxSizeRollBackups value=""/>
- <maximumFileSize value="1024KB"/>
- <rollingStyle value="Size"/>
- <staticLogFileName value="true"/>
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
- </layout>
- </appender>
- <root>
- <level value="DEBUG"/>
- <appender-ref ref="RollingLogFileAppender"/>
- </root>
- </log4net>
- <system.web>
- <compilation debug="true" targetFramework="4.5"/>
- <customErrors mode="Off"/>
- <httpModules>
- <add type="EazyBPMS.Web.UI.HttpModule, EazyBPMS.Web.UI" name="HttpModule"/>
- </httpModules>
- <httpHandlers>
- <add verb="*" path="templates/main/*.html" type="System.Web.HttpForbiddenHandler"/>
- </httpHandlers>
- <!-- 文件上传大小KB-->
- <httpRuntime requestValidationMode="2.0" maxRequestLength="" executionTimeout=""/>
- <pages controlRenderingCompatibilityVersion="4.0"/>
- </system.web>
- <system.webServer>
- <validation validateIntegratedModeConfiguration="false"/>
- <modules runAllManagedModulesForAllRequests="true">
- <add type="EazyBPMS.Web.UI.HttpModule, EazyBPMS.Web.UI" name="HttpModule"/>
- </modules>
- <security>
- <requestFiltering>
- <requestLimits maxAllowedContentLength=""/>
- </requestFiltering>
- </security>
- </system.webServer>
- </configuration>
至此log4net已经可以跑起来了
为了方便使用推荐在每个页面类开始写如下代码
- private static ILog logger = LogManager.GetLogger(typeof(Global));
然后在需要记录日志的地方记录就可以了,例如:
- 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的使用的更多相关文章
- asp.net MVC日志插件Log4Net学习笔记一:保存日志到本地
log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过lo ...
- ASP.NET中iframe框架点击左边页面链接,右边显示链接页面内容
首先是主页面main.aspx <body style="background-color: #AFEEEE"> <form id="form1&quo ...
- asp.net MVC日志插件Log4Net学习笔记二:保存日志到sqlserver的配置
1.写到sqlserver的配置: <!--保存到SQLSERVER数据库日志--> <log4net> <appender name="AdoNetAppen ...
- asp.net core 集成 log4net 日志框架
asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...
- 解读ASP.NET 5 & MVC6系列(9):日志框架
框架介绍 在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net.NLog.CommonLogging使用起来多多少少都有些费劲,和java的SLF4J根本无法相比. ...
- [转]asp.net5中使用NLog进行日志记录
本文转自:http://www.cnblogs.com/sguozeng/articles/4861303.html asp.net5中使用NLog进行日志记录 asp.net5中提供了性能强大的日志 ...
- asp.net5中使用NLog进行日志记录
asp.net5中提供了性能强大的日志框架,本身也提供了几种日志记录方法,比如记录到控制台或者事件中等,但是,对大部分程序员来说,更喜欢使用类似log4net或者Nlog这种日志记录方式,灵活而强大. ...
- ASP.NET Core 6框架揭秘实例演示[13]:日志的基本编程模式[上篇]
<诊断跟踪的几种基本编程方式>介绍了四种常用的诊断日志框架.其实除了微软提供的这些日志框架,还有很多第三方日志框架可供我们选择,比如Log4Net.NLog和Serilog 等.虽然这些框 ...
- log4net 日志框架的配置
log4net 日志框架的配置——静态文件(一) 添加对log4net程序集的引用 选择程序集文件添加引用即可,需要注意的是需要添加相应程序版本的程序集,如果你的应用是基于.netFramework2 ...
随机推荐
- iOS开发之获取系统相册ALAssetLibrary
注:当你选择看这篇博客时想必你的应用还支持iOS8一下系统,如果你的应用要求最低版本大于iOS8,建议使用PhotoKit框架,效率更高 ALAssetsLibrary包含,ALAssetsLibra ...
- iOS源代码管理svn
01. SVN介绍 SVN 是集中式源代码管理工具 概念: 1> Repository 代码仓库,保存代码的仓库 2> Server 服务器,保存所有版本的代码仓库 3&g ...
- Mac标识物理位置算法 import Levenshtein mac列表特征值
mac 字符串 与 基准字符串的 Levenshtein 距离,考虑 mac信号强度的时序性,60秒内若干次变化 不引入强度 mac字符串的唯一性 如何排序 基准字符串的选取 同一尺度 都按强度 ...
- Jquery实现loading效果
需要引入jquery和bootstrap相关包,然后把下面的代码复制进去就可以了: <div class="modal fade" id="loadingModal ...
- socket编程python+c
python版: server: def socket_loop_server_function(): HOST = '192.168.56.1' PORT = 21567 sk = socket.s ...
- Bootstrap 轮播图(Carousel)插件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用JSTL在页面前的空行怎么去除?
解决的方法是:在每个JSP的头上加上一段代码 <%@ page trimDirectiveWhitespaces="true" %>
- C#练习委托、事件、事件处理
控制台应用程序效果: 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- Spark集群搭建(local、standalone、yarn)
Spark集群搭建 local本地模式 下载安装包解压即可使用,测试(2.2版本)./bin/spark-submit --class org.apache.spark.examples.SparkP ...
- fastjson 格式化自定义选项
QuoteFieldNames———-输出key时是否使用双引号,默认为true WriteMapNullValue——–是否输出值为null的字段,默认为false WriteNullNumberA ...