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

8/10/2015来源:ASP.NET技巧人气:2738

【原创】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 用于类型库的 ID23 [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         try13         {14             Log.Debug("\n");15             Log.Debug("Log 开始!");16         }17         catch (Exception ex)18         {19             Log.Error("Log 异常 :", ex);20         }21         finally22         {23             Log.Debug("Log 结束!");24         }25     }26 }
View Code

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

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