1. 程式人生 > >在ASP.NET MVC5中如何使用Apache log4net 類庫來記錄日誌

在ASP.NET MVC5中如何使用Apache log4net 類庫來記錄日誌

在執行軟體程式的時候,跟蹤和監控日誌是一種記錄過程的好方法。 好東東和大家一起分享。

簡介:

在執行軟體程式的時候,跟蹤和監控日誌是一種記錄過程的好方法。尤其在應用程式出錯的時候,日誌是我們最需要的檔案。不管是在web,winform,windowsphone。

這裡我們將一步一步講解如何在ASP.NET MVC5應用程式中使用Apache log4net 框架來記錄日誌。

我用的是 Visual Studio Express 2013 和.NET framework 4.5.

第一步:

開啟 Visual Studio 2013 建立一個新的ASP.NET應用程式選擇MVC 模板.

第二步:

在這個應用程式例子中,我們將使用Apache log4net 框架來記錄日誌. 我們需要通過 NuGet package manager引用 log4net DLL .

  • In VS 2013 Solution Explorer -> 右擊Reference 並 選擇Manage NuGet Packages.
  • 查詢 ‘log4net’ 然後安裝.

如果安裝成功,我們就能夠在引用段下面看到如下圖:

第三步:

接下來我們就要配置我們的應用程式來使用Log4Net了。把下面這行程式碼加在解決方案下的startup.cs 檔案中, 或加到global.asax.cs中也可。

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

第四步:

 web.config檔案中新增下面一節內容:

複製程式碼
 1 <configSections>
 2     <!-- Add log4net config section-->
 3     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,     log4net"
/> 4 </configSections> 5 6 <log4net debug="true"> 7 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 8 <file value="logs\log.txt" /> 9 <appendToFile value="true" /> 10 <rollingStyle value="Size" /> 11 <maxSizeRollBackups value="10" /> 12 <maximumFileSize value="10MB" /> 13 <staticLogFileName value="true" /> 14 <layout type="log4net.Layout.PatternLayout"> 15 <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" /> 16 </layout> 17 </appender> 18 19 <root> 20 <level value="DEBUG" /> 21 <appender-ref ref="RollingLogFileAppender" /> 22 </root> 23 </log4net>
複製程式碼

以上是以檔案大小來切割日誌,10Mb自動生成下一個日誌檔案。 

同時也可以以日期生成日誌檔案,具體使用如下block的配置。

 <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="false" />
      <DatePattern value="yyyyMMdd".log"" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

第五步:

修改Global.asax.cs檔案把下面這段程式碼新增在Application_Start()函式裡面:

log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));

到此,我們已經完成配置。

第六步:

在我們想新增日誌的類中新增如下記錄日誌宣告:

readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

第七步:

使用logger.Error()方法來給我們想加日誌的地方新增日誌。

執行該程式我們就可以看到應用程式根目錄下(webconfig檔案配置的位置) 的logs資料夾下生成的日誌了 。

相關推薦

ASP.NET MVC5如何使用Apache log4net 記錄日誌

在執行軟體程式的時候,跟蹤和監控日誌是一種記錄過程的好方法。 好東東和大家一起分享。 簡介: 在執行軟體程式的時候,跟蹤和監控日誌是一種記錄過程的好方法。尤其在應用程式出錯的時候,日誌是我們最需要的檔案。不管是在web,winform,windowsphone。 這

ASP.NET MVC5 百度ueditor富文本編輯器的使用

編譯時間 文本編輯器 ida height git aid asp ueditor jquery 隨著網站信息發布內容越來越多,越來越重視美觀,富文本編輯就是不可缺少的了,眾多編輯器比較後我選了百度的ueditor富文本編輯器。 百度ueditor富文本編輯器分為兩種一種

ASP.NET MVC5View-Controller間數據的傳遞

button 無法訪問 匿名類型 變量 而是 大小 div 匿名 req 使用ASP.NET MVC做開發時,經常需要在頁面(View)和控制器(Controller)之間傳遞數據,那麽都有哪些數據傳遞的方式呢? 本文對於View向Controller中傳

asp.net core 抽取Controller到及Autofac自動屬性注入

寫在前面  之前有個專案是用asp.net webapi做的,pc和移動端共用api的服務介面,balabala,正好最近在看關於asp.net core方面的資料,各種依賴注入,中介軟體,處理管道等,而且把webapi和mvc融合到了一起,就想著把之前那個專案移到asp.net cor

asp.net mvc加入log4net記錄錯誤日誌

第一步: 新增並應用Log4net.dll。然後在Web.config檔案中新增下面的配置局 <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandl

ASP.NET MVC使用Log4Net進行多種HttpCode日誌記錄

參考了以下兩篇文章 總體設計 錯誤型別 錯誤入口 處理方法 Controller中的錯誤 (已經考慮到的) 在try-catch中記錄日誌 顯示HttpCode500錯誤檢視 Controller中的錯誤 (未考慮到的) 在繼承Handl

ASP.Net Core 使用列舉而不是列舉

前言:我相信大家在編寫程式碼時經常會遇到各種狀態值,而且為了避免硬編碼和程式碼中出現魔法數,通常我們都會定義一個列舉,來表示各種狀態值,直到我看到Java中這樣使用列舉,我再想C# 中可不可以這樣寫,今天就分享一下我的感悟。   一、通常我們是這樣使用列舉的 (1)switch中使用列舉

ASP.NET(c#) 通過配置配置authentication 驗證控制 Login 登入

一,配置Web.config 首先在 Web.config <authentication> 裡將身份驗證模式更改為Forms(窗體)。具體程式碼如下<system.web> <!--拒絕匿名使用者訪問--> <authentication mode="Fo

log4net 使用總結- (1)在ASP.NET MVC 使用

站點 href 還需 配置文件 str nag org src stat 1. 去官網下載log4net.dll,增加引用到站點下(你也可以通過nuget 安裝) http://logging.apache.org/log4net/download_log4net.cgi

ASP.NET MVC5+EF6+EasyUI 後臺管理系統(1)-前言與目錄(持續更新...)

編碼規範 圖標 pri log 任務 ros 部署 基本 form 開發工具:VS2015(2012以上)+SQL2008R2以上數據庫    您可以有償獲取一份最新源碼聯系QQ:729994997 價格 666RMB 升級後界面效果如下: 日程管理 http://

ASP.NET MVC有四種過濾器

std tpc min fsm emc 為什麽 lbp yun eal 在ASP.NET MVC中有四種過濾器類型 Action 1、在ASP.NET MVC項目中,新建文件夾Filter,然後新建類MyCustormFilter,繼承自ActionFilterA

ASP.NET MVC常用的ActionResult

oca 繼承 json mvc erl ram rip request url地址 常見的ActionResult 1、ViewResult 表示一個視圖結果,它根據視圖模板產生應答內容。對應得Controller方法為View。 2、Part

asp.net c# 的佇列queue通用

/********************************************* * CLR 版本: 4.0.30319.42000 * 類 名 稱: Queu

asp.net MVC5,如何使用mysql資料庫,使用MVC框架自帶的identity使用者驗證體系

問題如題 現在很多時候,即使是.net專案,我們用的資料庫也未必時是 SQL Server了。 但很多VS 自帶的框架(如MVC 、WebAPI等框架)中的示例自帶的仍然是預設Sql Server的,而且並不一定好改成別的資料庫。這有時候就很苦惱。 比如.

ASP.NET MVC5----瞭解我們使用的@HTML幫助

之前使用mvc進行專案開發都是瞭解和經常使用HTML的幫助類,來完成我們前端大部分程式碼的編寫,其實在我沒有接觸AngularJS之前對於這種方法還是很喜歡的,畢竟它是將.aspx頁面革命掉的東西,但是隨著專案中使用AngularJS我越來越喜歡這種將前後端分開的開發模式

Asp.net MVC如何獲取控制器的名稱

tex 如何 route 控制 this .get data control str 如果在代碼中 當前controller、action的獲取RouteData.Route.GetRouteData(this.HttpContext).Values["controlle

asp.net mvchtml helper的一大優勢

ont size color 優勢 其中 系統 per .net strong 剛上手這個框架,發現其中的html helper用起來很方便,讓我們這些從web form 過渡來的coder有一種使用控件的快感,嘻嘻! 言歸正傳,我要說的是在使用它時,系統會自動執行表單的現

淺析Asp.net MVC Ajax的使用

x11 生成 table ex18 review arp javascrip tle func 在ASP.NET MVC beta中我們可以使用Ajax.BeginForm, Ajax.ActionLink來進行Ajax調用,同樣我們也可以使用一些支持Ajax 框架如jQ

ASP.NET MVC5路由系統機制詳細講解

提交 eas 找文件 網址 自動調用 提取 ges pri stat 請求一個ASP.NET mvc的網站和以前的web form是有區別的,ASP.NET MVC框架內部給我們提供了路由機制,當IIS接受到一個請求時,會先看是否請求了一個靜態資源(.html,css,js

ASP.NET MVC5 新特性:Attribute路由使用詳解

ref 否則 back default static 引入 擁有 bsp pathinfo 1、什麽是Attribute路由?怎麽樣啟用Attribute路由?   微軟在 ASP.NET MVC5 中引入了一種新型路由:Attribute路由,顧名思義,Attribute