国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - log4net創建系統日志的詳細步驟

log4net創建系統日志的詳細步驟

2019-11-22 11:45ASP.NET教程網 ASP.NET教程

log4net是.Net下一個非常優秀的開源日志記錄組件。log4net記錄日志的功能非常強大。它可以將日志分不同的等級,以不同的格式,輸出到不同的媒介。本文主要是簡單的介紹如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速創建系統日

前言
用戶可以從http://logging.apache.org/log4net/下載log4net的源代碼。解壓軟件包后,在解壓的src目錄下將log4net.sln載入Visual Studio .NET,編譯后可以得到log4net.dll。用戶要在自己的程序里加入日志功能,只需將log4net.dll引入工程即可。

在項目中配置

第一步:首先在項目中引用log4net.dll文件。
第二步:在Web.config文件中進行添加configSections的節點

 

復制代碼代碼如下:

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <!--配置一個結點 名稱為log4net-->
  </configSections>

 

第三步:添加log4net配置節點

 

復制代碼代碼如下:

<log4net debug="true">
</log4net>

 

然后在log4net節點下添加
寫入本地文本文件中的配置

 

復制代碼代碼如下:

         <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
             <!--定義的是日志記錄到文件的附著器 name表示該附著器的名稱-->         
             <!--在log4net中還有一個附著器RollingFileAppender 它表示會循環生成很多文件,舉例來說,就是設置一共可以生成20個文件,每個文件的大小為2K,那么如果第一個、-->          
             <!--文件的大小超過2K,就會自動創建一個按順序命名的文件-->
             <param name="File" value="c:\Log\DBLog.txt" /> <!--日志記錄的存在路徑-->
             <param name="AppendToFile" value="true" /><!--為true就表示日志會附加到文件,為false,則會重新創建一個新文件-->
             <layout type="log4net.Layout.PatternLayout">
               <!--輸出內容控制-->
               <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
             </layout>     
         </appender>

 

注釋很清楚,就不解釋了。
寫入指定郵箱的配置

 

復制代碼代碼如下:

        <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
        <!--設置發送電子郵件的附著器-->
            <authentication value="Basic" />
            <to value="518@qq.com" />
            <from value="a@163.com" />
            <username value="帳號" />
            <password value="密碼" />
            <subject value="程序異常日志記錄郵件發送" />
            <smtpHost value="smtp.163.com" />
            <bufferSize value="512" />
            <lossy value="true" />
            <evaluator type="log4net.Core.LevelEvaluator">
               <threshold value="debug"/>  
            </evaluator>
            <layout type="log4net.Layout.PatternLayout">
                 <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />    
            </layout>
        </appender>

 

通過的是163郵箱服務器發送
將日志寫入數據庫的相關配置,還要建立一張對應的數據庫表

 

復制代碼代碼如下:

         <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
             <!--存儲到數據庫的操作-->
             <bufferSize value="10"/>
             <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
             <connectionString value="server=.;database=Log4Net;user id=sa;password=saa"/>
             <commandText value="INSERT INTO _Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date,                                @log_thread, @log_level, @log_logger, @log_message, @log_exception)"/>
             <parameter>
                 <parameterName value="@log_date"/>
                 <dbType value="DateTime"/>
                 <layout type="log4net.Layout.RawTimeStampLayout"/><!--可以認為是記錄日志的時間-->
             </parameter>
             <parameter>
                 <parameterName value="@log_thread"/>
                 <dbType value="String"/>
                 <size value="255"/>
                 <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%thread"/><!--記錄日志時的線程號--> 
                </layout>  
             </parameter>
             <parameter>
                 <parameterName value="@log_level"/>
                 <dbType value="String"/>
                 <size value="50"/>
                 <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%level"/><!--日志級別-->
                 </layout>
             </parameter>
             <parameter>
                 <parameterName value="@log_logger"/>
                 <dbType value="String"/>
                 <size value="255"/>
                 <layout type="log4net.Layout.PatternLayout">
                     <conversionPattern value="%logger"/><!--哪個記錄器存儲的該日志-->
                 </layout>
             </parameter>
             <parameter>
                 <parameterName value="@log_message"/>
                 <dbType value="String"/>
                 <size value="4000"/>
                 <layout type="log4net.Layout.PatternLayout">
                     <conversionPattern value="%message"/><!--日志信息-->
                 </layout>
             </parameter>
             <parameter>
                 <parameterName value="@log_exception"/>
                 <dbType value="String"/>
                 <size value="255"/>
                 <layout type="log4net.Layout.ExceptionLayout"/><!--異常信息-->
             </parameter>  
         </appender>

 

另外一種寫入文件的方式配置

 

復制代碼代碼如下:

         <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
             <!--這個就是我在上面提到的RollingFileAppender-->
             <file value="example.log" /><!--文件名稱-->
             <appendToFile value="false" /><!--會創建新文件,一般設置為true,這里設置為false,是為了看到創建的文件-->
             <maximumFileSize value="1KB" /><!--文件大小-->
             <maxSizeRollBackups value="20" /><!--創建最大文件數-->
             <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%level %thread %logger - %message%newline" />
             </layout>
         </appender>

 

在log4net節點中還有兩個節點

 

復制代碼代碼如下:

      <logger name="Loggering">
        <level value="Warn"/>
        <appender-ref ref="ADONetAppender"/>
      </logger>
      <root>
        <level value="info" />
          <!--<appender-ref ref="ADONetAppender" />-->
          <appender-ref ref="SmtpAppender"/>
          <!--<appender-ref ref="LogFileAppender"/>
          <appender-ref ref="ColoredConsoleAppender"/>
          <appender-ref ref="EventLogAppender"/>
          <append-ref ref="NetSendAppender"/>
          <appender-ref ref="RollingFile"/>-->
      </root>

 

在框架的體系里,所有的日志對象都是根日志(root logger)的后代。 因此如果一個日志對象沒有在配置文件里顯式定義,則框架使用根日志中定義的屬性。在<root>標簽里,可以定義level級別值和Appender的列表。如果沒有定義LEVEL的值,則缺省為DEBUG。可以通過<appender-ref>標簽定義日志對象使用的Appender對象。<appender-ref>聲明了在其他地方定義的Appender對象的一個引用。在一個logger對象中的設置會覆蓋根日志的設置。而對Appender屬性來說,子日志對象則會繼承父日志對象的Appender列表。這種缺省的行為方式也可以通過顯式地設定<logger>標簽的additivity屬性為false而改變。
那么上面就會有數據庫日志的寫入和郵箱的寫入
在Global.asax文件初始化配置

 

復制代碼代碼如下:


        protected void Application_Start()
        {
            //讀取日志  如果使用log4net,應用程序一開始的時候,都要進行初始化配置
            log4net.Config.XmlConfigurator.Configure();

            AreaRegistration.RegisterAllAreas();

 

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }

 

調用

 

復制代碼代碼如下:

        private static readonly log4net.ILog log = log4net.LogManager.GetLogger("Loggering");
        public ActionResult About()
        { 
             log.Info("log日志信息");
             log.Debug("debug信息");
             log.Error("error信息");
             log.Warn("warn信息");
             Exception ex = new Exception("測試的異常信息");
             log.Fatal("fatal信息", ex);
            return View();
        }

 

運行一下


Log4net中 DEBUG、INFO、WARN、ERROR 區分得很好。正常的 DEBUG、INFO 的日志, 就讓它記錄在 日志文件里面吧。
對于 WARN、ERROR 級別的日志, 記錄到日志文件的同時, 順便發送電子郵件到我的信箱里面。 這樣一來, 我也不必每天去看日志文件, 二來,出了什么問題, 能及時通過電子郵件得到通知。
數據庫結構

 

復制代碼代碼如下:

create database Log4Net
go
use Log4Net
create table _log
(
    id int identity(1,1) primary key not null,
    date datetime null,
    thread int null,
    level varchar(10) null,
    logger varchar(20) null,
    Message varchar(100) null,
    Exception varchar(100) null
)

 

還待優化,有空了再來琢磨琢磨。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久国产精品久久精品国产演员表 | 日韩小视频在线观看 | 午夜亚洲一区 | 日本精品视频在线观看 | 欧美一级内谢 | 日韩av免费看 | 国产一区二区视频免费看 | 伊人五月| 91天堂网 | 在线播放中文字幕 | 欧美亚洲国产日韩 | 黄色成人av | 欧美日韩亚洲成人 | 亚洲色图 偷拍自拍 | 国内成人精品2018免费看 | 欧美一级在线观看 | 黄色小视频在线观看 | 欧美精品综合 | 国产精品a久久久久 | 欧美日韩精品免费 | 欧美日韩精品一区二区三区四区 | 国产精品www | 午夜精品一区二区三区在线播放 | 一区二区三区在线免费观看 | 精品一区二区久久 | 99热这里有| 国产精品久久久久久久久久久免费看 | 欧美日韩一区二区电影 | 中文字幕视频在线观看 | 内地农村三片在线观看 | 性视屏| 国产欧美在线观看 | 夜夜嗨aⅴ免费视频 | 欧美一级全黄 | 成人aⅴ视频 | 成人乱码一区二区三区av | 91精品国产乱码久久久久久 | 欧美大片免费 | 国产婷婷在线观看 | 天堂中文视频在线观看 | 亚洲视频免费 |