<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 22:40:25
        文檔

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

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

        前言
        用戶可以從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
        )

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

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        log4net創建系統日志的詳細步驟:前言用戶可以從http://logging.apache.org/log4net/下載log4net的源代碼。解壓軟件包后,在解壓的src目錄下將log4net.sln載入Visual Studio .NET,編譯后可以得到log4net.dll。用戶要在自己的程序里加入日志功能,只需將log4net.dll引入工程即
        推薦度:
        標簽: 步驟 日志 詳細
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产亚洲美女精品久久| 亚洲国产高清视频在线观看| 亚洲综合无码一区二区痴汉| 国产在线观看免费不卡| 中文字幕亚洲精品无码| 国产青草亚洲香蕉精品久久| 在线A级毛片无码免费真人| 中文字幕专区在线亚洲| 成人精品综合免费视频| 免费a级毛片无码av| 美女巨胸喷奶水视频www免费| 国产成人亚洲综合| 在线观看肉片AV网站免费| 亚洲好看的理论片电影| 精品免费人成视频app| 中文字幕亚洲综合久久男男 | 国产成人免费高清激情明星| 亚洲片国产一区一级在线观看| 美美女高清毛片视频黄的一免费| 啦啦啦完整版免费视频在线观看| 亚洲经典在线观看| 成人最新午夜免费视频| 男男gay做爽爽免费视频| 亚洲VA中文字幕无码毛片| 色影音免费色资源| 亚洲AV无码专区国产乱码不卡| 黄色成人免费网站| 日韩国产欧美亚洲v片| 伊人久久亚洲综合| 在线看片v免费观看视频777| 亚洲狠狠婷婷综合久久蜜芽| 久久久久久99av无码免费网站| 91亚洲国产成人精品下载| 中文精品人人永久免费 | 波多野结衣久久高清免费| 亚洲AV无码专区在线电影成人 | 久久精品亚洲综合| 成年私人影院免费视频网站| 一级做受视频免费是看美女| 波多野结衣视频在线免费观看| 三上悠亚电影全集免费 |