【原創】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 }
View Code

 

 

個人網站正在搭建中:http://Amoysec.com,准備使用bootstrap + knockoutjs + MVC +WebAPI + EF6.0來做,其中對knockoutjs也算有不少的了解了,雖然比不上博客園的湯姆大叔,但也全憑自己對一份chm文檔摸索出了不少。歡迎一起探討!

 轉載請注明出處,謝謝:http://www.cnblogs.com/mose/p/Amoy.html

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM