[MDP.Net] 日誌紀(jì)錄
MDP.Logging
MDP.Logging是一個(gè).NET開(kāi)發(fā)模組,協(xié)助開(kāi)發(fā)人員快速建立具有日誌紀(jì)錄的應(yīng)用系統(tǒng)。提供NLog、Log4net、Serilog等功能模組,用以簡(jiǎn)化開(kāi)發(fā)流程並滿足多變的商業(yè)需求。
說(shuō)明文件:https://clark159.github.io/MDP.Net/
程式源碼:https://github.com/Clark159/MDP.Net/
模組功能

模組掛載
MDP.Logging擴(kuò)充.NET Core既有的日誌紀(jì)錄,加入NLog、Log4net、Serilog等功能模組的掛載功能。開(kāi)發(fā)人員可以透過(guò)設(shè)定Config設(shè)定,掛載在執(zhí)行階段使用的日誌紀(jì)錄。
// Config設(shè)定
{
"Logging": {
"NLog": { "ConfigFile" : "nlog.config"}
}
}
- 命名空間:Logging
- 模組名稱:NLog
- 模組參數(shù):ConfigFile="nlog.config"。(nlog.config是預(yù)設(shè)值,可省略)
日誌寫入
MDP.Logging擴(kuò)充.NET Core既有的日誌紀(jì)錄,加入ILogger介面來(lái)提供日誌寫入功能,並做為抽象層以減少應(yīng)用程式對(duì)於元件、平臺(tái)、框架的直接依賴。而在系統(tǒng)底層ILogger介面則是由LoggerAdapter物件實(shí)作並轉(zhuǎn)接.NET Core框架內(nèi)建的日誌寫入功能。
// Logger
ILogger logger;
// Log
logger.LogError("Hello World");
ILogger介面:ILogger介面提供日誌寫入功能。
- 命名空間:
MDP.Logging
- 類別定義:
public interface ILogger
public interface ILogger<TCategory> : ILogger
- TCategory:寫入日誌的類別(Class)
- 類別方法:
// Debug
void LogDebug(string message, params object[] args);
void LogDebug(Exception exception, string message, params object[] args);
// Trace
void LogTrace(string message, params object[] args);
void LogTrace(Exception exception, string message, params object[] args);
// Information
void LogInformation(string message, params object[] args);
void LogInformation(Exception exception, string message, params object[] args);
// Warning
void LogWarning(string message, params object[] args);
void LogWarning(Exception exception, string message, params object[] args);
// Error
void LogError(string message, params object[] args);
void LogError(Exception exception, string message, params object[] args);
// Critical
void LogCritical(string message, params object[] args);
void LogCritical(Exception exception, string message, params object[] args);
- message:寫入日誌的訊息內(nèi)容。
- args:寫入日誌的物件。
- exception:寫入日誌的例外。
模組使用
加入模組
MDP.Logging預(yù)設(shè)內(nèi)建在MDP.Net專案範(fàn)本內(nèi),依照下列操作步驟,即可建立包含MDP.Logging模組的專案。
- 在命令提示字元輸入下列指令,使用MDP.Net專案範(fàn)本建立專案。
// 建立API服務(wù)、Web站臺(tái)
dotnet new install MDP.WebApp
dotnet new MDP.WebApp -n WebApplication1
// 建立Console程式
dotnet new install MDP.ConsoleApp
dotnet new MDP.ConsoleApp -n ConsoleApp1
取得ILogger
建立包含MDP.Logging模組的專案之後,就可以注入ILogger介面來(lái)使用日誌紀(jì)錄。
using MDP.Logging;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication1
{
public class HomeController : Controller
{
// Constructors
public HomeController(ILogger<HomeController> logger)
{
// Log
logger.LogError("Hello World");
}
}
}
模組範(fàn)例
專案開(kāi)發(fā)過(guò)程,需要將日誌訊息輸出,方便開(kāi)發(fā)人員觀測(cè)系統(tǒng)執(zhí)行狀況。本篇範(fàn)例協(xié)助開(kāi)發(fā)人員使用MDP.Logging,逐步完成必要的設(shè)計(jì)和實(shí)作。
- 範(fàn)例下載:WebApplication1.zip
操作步驟
1.開(kāi)啟命令提示字元,輸入下列指令。用以安裝MDP.WebApp範(fàn)本、並且建立一個(gè)名為WebApplication1的Web站臺(tái)。
dotnet new install MDP.WebApp
dotnet new MDP.WebApp -n WebApplication1
2.使用Visual Studio開(kāi)啟WebApplication1專案。改寫專案內(nèi)的Controllers\HomeController.cs、Views\Home\Index.cshtml,注入並使用ILogger。
using MDP.Logging;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication1
{
public class HomeController : Controller
{
// Fields
private readonly ILogger _logger = null;
// Constructors
public HomeController(ILogger<HomeController> logger)
{
// Default
_logger = logger;
}
// Methods
public ActionResult Index()
{
// Log
_logger.LogError("Hello World");
// Return
return View();
}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>WebApplication1</title>
</head>
<body>
<!--Title-->
<h2>WebApplication1</h2>
<hr />
</body>
</html>
3.執(zhí)行專案,於開(kāi)啟的Console視窗內(nèi),可以看到透過(guò)ILogger所寫入的日誌訊息 Hello World。(透過(guò).NET Core底層的ConsoleLogger輸出)

期許自己~
能以更簡(jiǎn)潔的文字與程式碼,傳達(dá)出程式設(shè)計(jì)背後的精神。
真正做到「以形寫神」的境界。

浙公網(wǎng)安備 33010602011771號(hào)