【原创】ASP.NET Web开发,实现打印Log日志,步骤详解

添加Log需要四步:

一、引用log4net.dll,详见附件:http://pan.baidu.com/s/1c0hab2g

二、项目根目录下,添加 log4net.xml

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <configuration>
 3   <configSections>
 4     <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
 5   </configSections>
 6   <log4net>
 7     <!--定义输出到文件中-->
 8     <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
 9       <!--定义文件存放位置-->
10       <file value="D:/log4netfile/BYPlatformWAPI.log" />
11       <!--是否追加到文件-->
12       <appendToFile value="true" />
13       <!--名称是否可以更改 为false为可以更改-->
14       <param name="StaticLogFileName" value="false"/>
15       <!--变换的形式为日期-->
16       <rollingStyle value="Date" />
17       <!--日期的格式-->
18       <datePattern value="yyyyMMdd-HHmmss" />
19       <layout type="log4net.Layout.PatternLayout">
20         <!--<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />-->
21         <conversionPattern value="记录时间:%date 日志级别:%level Log类:%logger - Log描述:\n %message%newline" />
22       </layout>
23     </appender>
24
25     <!--定义输出到控制台命令行中-->
26     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
27       <layout type="log4net.Layout.PatternLayout">
28         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
29       </layout>
30     </appender>
31     <!--定义输出到windows事件中-->
32     <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
33       <layout type="log4net.Layout.PatternLayout">
34         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
35       </layout>
36     </appender>
37     <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
38     <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
39       <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
40       <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
41       <!--定义各个参数-->
42       <parameter>
43         <parameterName value="@logDate" />
44         <dbType value="String" />
45         <size value="240" />
46         <layout type="log4net.Layout.PatternLayout">
47           <conversionPattern value="%date" />
48         </layout>
49       </parameter>
50       <parameter>
51         <parameterName value="@thread" />
52         <dbType value="String" />
53         <size value="240" />
54         <layout type="log4net.Layout.PatternLayout">
55           <conversionPattern value="%thread" />
56         </layout>
57       </parameter>
58       <parameter>
59         <parameterName value="@logLevel" />
60         <dbType value="String" />
61         <size value="240" />
62         <layout type="log4net.Layout.PatternLayout">
63           <conversionPattern value="%level" />
64         </layout>
65       </parameter>
66       <parameter>
67         <parameterName value="@logger" />
68         <dbType value="String" />
69         <size value="240" />
70         <layout type="log4net.Layout.PatternLayout">
71           <conversionPattern value="%logger" />
72         </layout>
73       </parameter>
74       <parameter>
75         <parameterName value="@message" />
76         <dbType value="String" />
77         <size value="240" />
78         <layout type="log4net.Layout.PatternLayout">
79           <conversionPattern value="%message" />
80         </layout>
81       </parameter>
82     </appender>
83     <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
84     <root>
85       <level value="ALL" />
86       <!--文件形式记录日志-->
87       <appender-ref ref="LogFileAppender" />
88       <!--控制台控制显示日志
89       <appender-ref ref="ConsoleAppender" />-->
90       <!--Windows事件日志
91       <appender-ref ref="EventLogAppender" />-->
92       <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
93       <appender-ref ref="AdoNetAppender_Access" />
94       -->
95     </root>
96
97   </log4net>
98 </configuration>

log4net.xml

三、在\Properties\AssemblyInfo.cs文件的底部,添加一句:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]

 1 using System.Reflection;
 2 using System.Runtime.CompilerServices;
 3 using System.Runtime.InteropServices;
 4
 5 // 有关程序集的常规信息通过下列特性集
 6 // 控制。更改这些特性值可修改
 7 // 与程序集关联的信息。
 8 [assembly: AssemblyTitle("Web")]
 9 [assembly: AssemblyDescription("")]
10 [assembly: AssemblyConfiguration("")]
11 [assembly: AssemblyCompany("")]
12 [assembly: AssemblyProduct("Web")]
13 [assembly: AssemblyCopyright("版权所有(C)  2014")]
14 [assembly: AssemblyTrademark("")]
15 [assembly: AssemblyCulture("")]
16
17 // 将 ComVisible 设置为 false 会使此程序集中的类型
18 // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的某个类型,
19 // 请针对该类型将 ComVisible 特性设置为 true。
20 [assembly: ComVisible(false)]
21
22 // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 [assembly: Guid("940997e2-1820-4f8b-b280-2e1bf426fe27")]
24
25 // 程序集的版本信息由下列四个值组成:
26 //
27 //      主版本
28 //      次版本
29 //      内部版本号
30 //      修订号
31 //
32 // 可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值,
33 // 方法是按如下所示使用“*”:
34 [assembly: AssemblyVersion("1.0.0.0")]
35 [assembly: AssemblyFileVersion("1.0.0.0")]
36
37 //添加下面这句
38 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]

AssemblyInfo.cs

四、在要实现的类中添加全局变量:

 1 public class ConnectController : ApiController
 2 {
 3     #region 全局变量
 4     /// <summary>
 5     /// 日志引用
 6     /// </summary>
 7     private static log4net.ILog Log = LogManager.GetLogger("类名");
 8     #endregion
 9
10     public void Main()
11     {
12         try
13         {
14             Log.Debug("\n");
15             Log.Debug("Log 开始!");
16         }
17         catch (Exception ex)
18         {
19             Log.Error("Log 异常 :", ex);
20         }
21         finally
22         {
23             Log.Debug("Log 结束!");
24         }
25     }
26 }

个人网站正在搭建中:http://Amoysec.com,准备使用bootstrap + knockoutjs + MVC +WebAPI + EF6.0来做,其中对knockoutjs也算有不少的了解了,虽然比不上博客园的汤姆大叔,但也全凭自己对一份chm文档摸索出了不少。欢迎一起探讨!

 转载请注明出处,谢谢:http://www.cnblogs.com/mose/p/Amoy.html

 

时间: 2024-10-12 17:48:22

【原创】ASP.NET Web开发,实现打印Log日志,步骤详解的相关文章

Linux /Var/log 日志文件详解

Linux系统日志一般放在/var/log目录下,对于了解此目录的文档作用就十分重要,下面我就列举一些工作中常用的日志文档,及文件作用,希望对大家有帮助,记录下来对自己也方便:      /var/log:常用目录,专门用来存放所有日志文件的目录,里面存放很多系统.软件.用户等相关的日志信息:里面有一些文件是比较常用的: lastlog:记录用户最后一次登录的信息,使用lastlog命令读取: message:记录系统的几乎所有信息,主要包括启动信息,syslogd服务记录的信息等: wtmp:

ASP.NET WEB开发6大内置对象

ASP.NET  WEB开发6大内置对象 ASP.NET 内置对象包括 1.Response 2.Request  3.Server  4.Application   5.Session   6.Cookie 1  Request对象主要是让服务器取得客户端浏览器的一些数据,包括从HTML表单用Post或者GET方法传递的参数.Cookie和用户认证. 2 Request对象是Page对象的成员之一. 3 程序中不需要做任何的声明即可直接使用:其类名为 HttpRequest属性很多,但方法很少

(总结)Web性能压力测试工具之WebBench详解

PS:在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同.面对这些问题,我们只能尽量去想方设法去模拟.所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数. Webbench是知名的网站压力测试工具,它是由Lionbridge公司(h

好程序员web前端学习路线大厂面试题详解

好程序员web前端学习路线大厂面试题详解,依赖注入原理 手动实现依赖注入实现方式 - var _global={ - ajax:function(){//申明服务,也可以说是内部类 - this.get=function(){ - //todo:get方式请求数据 - console.log(“get is success”); - }; - This.post=function(){ - //todo:post方式请求数据 - console.log(“post is success”); -

centos7.0 安装日志--图文详解-python开发环境配置

centos7.0发布之后,就下载了everthing的DVD镜像,今天有时间,所以决定在vbox底下体验一番--- 上图: 默认是体验安装,作为一个忠实粉丝,我决定选择直接安装! 这个界面是这次新版本更新后改的,它把以前要下一步.上一步可以修改的操作全部集中到一个页面来,默认选择是下图这样,比如你想修改软件安装选项只要点击相应选项就可以了. 每次你更改安装选项之后,它都会自动从新计算安装源,如果你的选择的资源本地没有,还可以通过网络来安装,默认网络是不启用的,所以我们需要自己手工设置一下网络.

构建安全的Xml Web Service系列之wse之错误代码详解

原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到迷茫和无助,我起初就觉得这个框架使用起来真的很难用,有时候一些莫名其妙的错误会困扰我半天或者几天的时间,而一些英文的解释理解起来似是而非,很难一针见血的获得哪里出了问题,我将用几篇文章将wse所涉及到的错误代码和错误消息翻译成中文,并且根据个人的一点经验,提出引发错误的原因,并总结出解决建议,不是很

ASP.NET Web开发技术的深入总结

[IT168技术]在国内.Net开发这个环境里, 中小型公司.或者大公司但主营业务不是软件开发里面的软件小团队.针对.Net开发者的要求都是十项全能型的全才, 能做的了从前台页面展现到最后数据存储的全套开发流程,甚至有些还须要程序公布,打包部署等知识, 以及还有其它方面的要求, 这个不说那么多. 招人难: 在招人的时候.我们碰到的大部分都是有多年工作经验,懂的东西也一大堆.也许有些懂的东西也没多少.问起基础性的概念问题,原理问题,大都没法准确的回答出来, 为何会出现这样的情况? 这个时候我们那么

ASP.NET Web开发项目实战视频教程

.NET Web开发零基础到商业项目实战北风特训营(赠送价值近百万商业源码)基于ASP.NET MVC4和Knockout.JS等技术实现Web通用商业框架课程讲师:风舞烟 课程分类:套餐系列适合人群:高级课时数量:420课时用到技术:ASP.NET,WebForm,Asp.NET MVC,商业源 涉及项目:商业项目实战 咨询qq:1840215592 Web开发项目实战课程详细查看:http://www.ibeifeng.com/netweb.html超实用项目实训:项目名称项目一..NET下

关于android手机不能打印Log日志

作为一个android开发者,当log打印不出来的的时候是很痛苦的.相信有人遇到过ADB连接正常,在开发工具上也正常显示设备信息正常却无法打印log或者只能打印部分log,那不妨可以试试进入工程模式调试一下log日志等级. 我的是360青春版,以此手机为例,首先进入拨号界面输入"*20121220#"(不同的品牌的进入方法不一样,可自行百度),进入界面1: 进入日志输出等级  界面2: 首先确定日志打印是否开启,如未开启请开启 界面3.4: 然后进入log日志等级,已android为例

网站开发中web页面跳转几种方式详解

在做web开发中,页面跳转的方式有很多种,然而有些时候这些跳转如何用到恰到好处却很容易被忽视. 客户端触发跳转有如下几种 使用meta元信息 <!--如下表示5秒后跳转到url指定的链接,推荐使用这种方式--> <meta http-equiv="refresh" content="5;url=http://my.oschina.net/ososchina/blog"> 2.使用javascript中的window.location对象 &l