最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# Serilog 日志的使用小結(jié)

 更新時(shí)間:2025年08月13日 11:31:33   作者:卷紙要用清風(fēng)的  
Serilog是一個(gè)功能強(qiáng)大且靈活的日志庫(kù),它支持多種日志輸出目標(biāo)和豐富的配置選項(xiàng),可以滿(mǎn)足不同的日志需求,通過(guò)合理配置Serilog,可以方便地記錄應(yīng)用程序的運(yùn)行日志,感興趣的可以了解一下

Serilog 的基本概念

日志級(jí)別

Serilog 支持多種日志級(jí)別,從低到高依次是:

  • Verbose(詳細(xì)):記錄最詳細(xì)的信息,通常用于調(diào)試。
  • Debug(調(diào)試):記錄調(diào)試信息,比 Verbose 稍低。
  • Information(信息):記錄正常運(yùn)行時(shí)的信息。
  • Warning(警告):記錄可能影響正常運(yùn)行的警告信息。
  • Error(錯(cuò)誤):記錄運(yùn)行時(shí)的錯(cuò)誤。
  • Fatal(致命):記錄導(dǎo)致應(yīng)用程序崩潰的致命錯(cuò)誤。

日志輸出目標(biāo)(Sink)

Serilog 支持多種日志輸出目標(biāo),例如:

  • 控制臺(tái)(Console
  • 文件(File
  • 數(shù)據(jù)庫(kù)(如 SQL Server、MySQL
  • 云存儲(chǔ)(如 Azure Blob StorageAWS S3
  • 日志聚合工具(如 Elasticsearch、Seq

安裝Serilog

C# 項(xiàng)目中使用 Serilog,首先需要安裝相關(guān)的 NuGet 包。以下是一些常用的 Serilog 包:

  • Serilog:核心日志庫(kù)。
  • Serilog.Sinks.Console:將日志輸出到控制臺(tái)。
  • Serilog.Sinks.File:將日志輸出到文件。
  • Serilog.Sinks.MSSqlServer:將日志輸出到 SQL Server 數(shù)據(jù)庫(kù)。
  • Serilog.Settings.Configuration:通過(guò)配置文件(如 appsettings.json)配置 Serilog。
    可以通過(guò) NuGet 包管理器安裝這些包。

配置Serilog

程序代碼中配置

在代碼中直接配置 Serilog 是最直接的方式。以下是一個(gè)簡(jiǎn)單的示例:

using Serilog;
using Serilog.Sinks.File;

class Program
{
    static void Main(string[] args)
    {
        // 配置日志
        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug() // 設(shè)置最低日志級(jí)別
            .WriteTo.Console()    // 輸出到控制臺(tái)
            .WriteTo.File("logs/log.txt", rollingInterval: RollingInterval.Day) // 輸出到文件,按天滾動(dòng)
            .CreateLogger();

        // 寫(xiě)入日志
        Log.Information("This is an information message.");
        Log.Warning("This is a warning message.");
        Log.Error("This is an error message.");

        // 關(guān)閉日志
        Log.CloseAndFlush();
    }
}

通過(guò)配置文件配置

Serilog 也支持通過(guò)配置文件(如 appsettings.json)進(jìn)行配置,這種方式更加靈活。首先需要安裝 Serilog.Settings.Configuration 包:
然后在 appsettings.json 文件中配置 Serilog

{
  "Serilog": {
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "File",
        "Args": {
          "path": "logs/log.txt",
          "rollingInterval": "Day"
        }
      }
    ]
  }
}

在程序中加載配置文件并初始化 Serilog

using Microsoft.Extensions.Configuration;
using Serilog;

class Program
{
    static void Main(string[] args)
    {
        // 加載配置文件
        var configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .Build();

        // 配置 Serilog
        Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(configuration)
            .CreateLogger();

        // 寫(xiě)入日志
        Log.Information("This is an information message.");
        Log.Warning("This is a warning message.");
        Log.Error("This is an error message.");

        // 關(guān)閉日志
        Log.CloseAndFlush();
    }
}

常見(jiàn)配置選項(xiàng)

日志級(jí)別

可以通過(guò) MinimumLevel 設(shè)置最低日志級(jí)別,低于該級(jí)別的日志將不會(huì)被記錄。例如:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Warning() // 只記錄 Warning 及以上級(jí)別的日志
    .CreateLogger();

文件日志

文件日志是常用的日志輸出方式。Serilog 提供了豐富的文件日志配置選項(xiàng),例如:

  • 文件路徑:指定日志文件的存儲(chǔ)路徑。
  • 滾動(dòng)策略:按時(shí)間(如按天、按小時(shí))或大小滾動(dòng)日志文件。
  • 保留策略:設(shè)置保留的日志文件數(shù)量或天數(shù)。
Log.Logger = new LoggerConfiguration()
    .WriteTo.File("logs/log.txt", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 7)
    .CreateLogger();

控制臺(tái)日志

控制臺(tái)日志可以實(shí)時(shí)顯示日志信息,方便調(diào)試。可以通過(guò)以下方式配置控制臺(tái)日志:

Log.Logger = new LoggerConfiguration()
    .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {Message}{NewLine}{Exception}")
    .CreateLogger();

其中,outputTemplate 可以自定義日志的輸出格式。

數(shù)據(jù)庫(kù)日志

Serilog 支持將日志輸出到多種數(shù)據(jù)庫(kù),例如 SQL Server、MySQL 等。以下是將日志輸出到 SQL Server 數(shù)據(jù)庫(kù)的示例:

Log.Logger = new LoggerConfiguration()
    .WriteTo.MSSqlServer(
        connectionString: "Server=your_server;Database=your_database;User Id=your_user;Password=your_password;",
        tableName: "Logs",
        autoCreateSqlTable: true)
    .CreateLogger();

在數(shù)據(jù)庫(kù)中,Serilog 會(huì)自動(dòng)創(chuàng)建一個(gè)日志表(如 Logs),并存儲(chǔ)日志信息。

使用Serilog在ASP.NET Core中

Serilog 也可以與 ASP.NET Core 集成,為 Web 應(yīng)用程序提供日志功能。以下是一個(gè)集成的示例:

安裝NuGet包

安裝以下 NuGet 包:

  • Serilog.AspNetCore
  • Serilog.Sinks.Console
  • Serilog.Sinks.File

配置Serilog

Program.cs 文件中配置 Serilog

using Serilog;

var builder = WebApplication.CreateBuilder(args);

// 配置 Serilog
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.Console()
    .WriteTo.File("logs/log.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();

builder.Host.UseSerilog();

var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

ASP.NET Core 中,Serilog 會(huì)自動(dòng)記錄應(yīng)用程序的生命周期事件(如啟動(dòng)、停止)以及中間件的日志。

日志上下文

Serilog 支持日志上下文,可以在日志中添加上下文信息,例如用戶(hù) ID、請(qǐng)求 ID 等。以下是一個(gè)示例:

using Serilog;
using Serilog.Context;

Log.Logger = new LoggerConfiguration()
    .WriteTo.Console()
    .CreateLogger();

using (LogContext.PushProperty("UserId", 12345))
{
    Log.Information("User {UserId} performed an action.", 12345);
}

在日志中,UserId 將作為上下文信息被記錄。

總結(jié)

Serilog 是一個(gè)功能強(qiáng)大且靈活的日志庫(kù),適用于各種 .NET 應(yīng)用程序。它支持多種日志輸出目標(biāo)和豐富的配置選項(xiàng),可以滿(mǎn)足不同的日志需求。通過(guò)合理配置 Serilog,可以方便地記錄應(yīng)用程序的運(yùn)行日志,幫助開(kāi)發(fā)人員進(jìn)行調(diào)試和問(wèn)題排查。

到此這篇關(guān)于C# Serilog 日志的使用小結(jié)的文章就介紹到這了,更多相關(guān)C# Serilog 日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于C#實(shí)現(xiàn)的文件分割與合并工具

    基于C#實(shí)現(xiàn)的文件分割與合并工具

    文件分割與合并是數(shù)據(jù)管理中的基礎(chǔ)操作,常用于大文件傳輸(如郵件附件限制)、分布式存儲(chǔ)(拆分后存儲(chǔ)至多個(gè)介質(zhì))、數(shù)據(jù)備份(分卷壓縮)等場(chǎng)景,本工具基于 C# 語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)的文件分割與合并工具,需要的朋友可以參考下
    2026-04-04
  • 詳細(xì)分析c# 客戶(hù)端內(nèi)存優(yōu)化

    詳細(xì)分析c# 客戶(hù)端內(nèi)存優(yōu)化

    這篇文章主要介紹了c# 客戶(hù)端內(nèi)存優(yōu)化的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#使用CSRedisCore的實(shí)現(xiàn)示例

    C#使用CSRedisCore的實(shí)現(xiàn)示例

    CSRedisCore是高效的.NET Redis客戶(hù)端,支持單節(jié)點(diǎn)、哨兵和集群模式,本文詳細(xì)介紹了其安裝配置方法和基礎(chǔ)操作,感興趣的可以了解一下
    2025-11-11
  • C#中自定義高精度Timer定時(shí)器的實(shí)例教程

    C#中自定義高精度Timer定時(shí)器的實(shí)例教程

    這篇文章主要介紹了C#中自定義高精度Timer定時(shí)器的實(shí)例教程,多線(xiàn)程的Timer編寫(xiě)需要注意線(xiàn)程安全的問(wèn)題,需要的朋友可以參考下
    2016-04-04
  • C#中值類(lèi)型和引用類(lèi)型的使用與比較

    C#中值類(lèi)型和引用類(lèi)型的使用與比較

    在C#中,數(shù)據(jù)類(lèi)型分為值類(lèi)型和引用類(lèi)型兩種,引用類(lèi)型變量存儲(chǔ)的是數(shù)據(jù)的引用,而值類(lèi)型變量直接存儲(chǔ)數(shù)據(jù),下面小編就來(lái)和大家講講這二者的使用與區(qū)別吧
    2023-07-07
  • C#數(shù)據(jù)結(jié)構(gòu)之單鏈表(LinkList)實(shí)例詳解

    C#數(shù)據(jù)結(jié)構(gòu)之單鏈表(LinkList)實(shí)例詳解

    這篇文章主要介紹了C#數(shù)據(jù)結(jié)構(gòu)之單鏈表(LinkList)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了單鏈表的原理、定義與C#具體實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • C#中Attribute特性的用法

    C#中Attribute特性的用法

    這篇文章介紹了C#中Attribute特性的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C#實(shí)現(xiàn)掃雷游戲

    C#實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C#面向?qū)ο蟮?3種設(shè)計(jì)模式介紹

    C#面向?qū)ο蟮?3種設(shè)計(jì)模式介紹

    這篇文章介紹了C#面向?qū)ο蟮?3種設(shè)計(jì)模式,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Unity TextMeshPro實(shí)現(xiàn)富文本超鏈接默認(rèn)字體追加字體

    Unity TextMeshPro實(shí)現(xiàn)富文本超鏈接默認(rèn)字體追加字體

    這篇文章主要為大家介紹了Unity TextMeshPro實(shí)現(xiàn)富文本超鏈接默認(rèn)字體追加字體示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01

最新評(píng)論

中阳县| 贵定县| 马尔康县| 佛山市| 新沂市| 上犹县| 友谊县| 平顺县| 新平| 伊金霍洛旗| 石城县| 凤城市| 乌什县| 年辖:市辖区| 潮州市| 祁阳县| 贵德县| 宜都市| 榆社县| 丰宁| 保亭| 临邑县| 蚌埠市| 蚌埠市| 攀枝花市| 大城县| 辽源市| 白银市| 巢湖市| 三亚市| 玛沁县| 永宁县| 黄骅市| 辽宁省| 陈巴尔虎旗| 焦作市| 扶绥县| 大厂| 普兰县| 龙川县| 屯昌县|