中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#日志記錄方案

發布時間:2024-11-24 12:48:34 來源:億速云 閱讀:81 作者:小樊 欄目:編程語言

在C#中,有多種日志記錄方案可供選擇。以下是一些常見的日志記錄庫和方法:

1. NLog

NLog是一個功能強大的日志記錄庫,易于配置和使用。它支持多種日志輸出方式,如文件、數據庫、網絡等。

安裝

dotnet add package NLog

配置

創建一個nlog.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">

    <targets>
        <file name="File" fileName="logs/app.log" />
    </targets>

    <rules>
        <logger name="*" minlevel="Trace" writeTo="File" />
    </rules>
</nlog>

使用

在代碼中配置和使用NLog:

using NLog;

class Program
{
    private static readonly Logger logger = LogManager.GetCurrentClassLogger();

    static void Main(string[] args)
    {
        logger.Trace("This is a trace message.");
        logger.Debug("This is a debug message.");
        logger.Info("This is an info message.");
        logger.Warn("This is a warning message.");
        logger.Error("This is an error message.");
        logger.Fatal("This is a fatal message.");
    }
}

2. log4net

log4net是Apache的一個日志記錄庫,同樣功能強大且易于配置。

安裝

dotnet add package log4net

配置

創建一個log4net.config文件:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="logs/app.log" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="5" />
        <maximumFileSize value="1MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{context}] - %message%newline" />
        </layout>
    </appender>

    <root>
        <level value="Trace" />
        <appender-ref ref="FileAppender" />
    </root>
</log4net>

使用

在代碼中配置和使用log4net:

using log4net;

class Program
{
    private static readonly ILog logger = LogManager.GetLogger(typeof(Program));

    static void Main(string[] args)
    {
        logger.Trace("This is a trace message.");
        logger.Debug("This is a debug message.");
        logger.Info("This is an info message.");
        logger.Warn("This is a warning message.");
        logger.Error("This is an error message.");
        logger.Fatal("This is a fatal message.");
    }
}

3. Serilog

Serilog是一個結構化的日志記錄庫,支持多種日志接收器和格式化選項。

安裝

dotnet add package Serilog

配置

創建一個appsettings.json文件:

{
  "Serilog": {
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "logs/app.log",
          "rollSizeLimit": 10485760, // 10MB
          "rollCount": 5,
          "formatter": "Serilog.Formatting.Compact"
        }
      }
    ]
  }
}

使用

在代碼中配置和使用Serilog:

using Serilog;

class Program
{
    static void Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
            .WriteTo.File("logs/app.log", rollingInterval: RollingInterval.Day, rollSizeLimit: 10MB)
            .CreateLogger();

        Log.Trace("This is a trace message.");
        Log.Debug("This is a debug message.");
        Log.Info("This is an info message.");
        Log.Warn("This is a warning message.");
        Log.Error("This is an error message.");
        Log.Fatal("This is a fatal message.");
    }
}

4. Microsoft.Extensions.Logging

.NET Core和.NET 5+自帶的日志記錄庫,易于集成和使用。

配置

Startup.cs中配置:

public void ConfigureServices(IServiceCollection services)
{
    services.AddLogging(builder =>
    {
        builder.AddConsole();
        builder.AddFile("logs/app.log", rollSizeLimit: 10485760, rollCount: 5);
    });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

使用

在代碼中配置和使用Microsoft.Extensions.Logging:

using Microsoft.Extensions.Logging;

class Program
{
    private static readonly ILogger<Program> logger = LoggerFactory.CreateLogger<Program>();

    static void Main(string[] args)
    {
        logger.LogTrace("This is a trace message.");
        logger.LogDebug("This is a debug message.");
        logger.LogInformation("This is an info message.");
        logger.LogWarning("This is a warning message.");
        logger.LogError("This is an error message.");
        logger.LogCritical("This is a fatal message.");
    }
}

選擇哪種日志記錄方案取決于你的具體需求和項目規模。NLog和log4net功能強大且成熟,適合大型項目;Serilog結構化和靈活,適合現代.NET應用;Microsoft.Extensions.Logging集成簡單,適合.NET Core和.NET 5+項目。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蓬溪县| 清新县| 革吉县| 宝应县| 琼结县| 万州区| 昆山市| 新绛县| 榆中县| 道孚县| 九龙县| 聂拉木县| 衡东县| 道真| 綦江县| 万全县| 舞钢市| 佛坪县| 凤山市| 阿克陶县| 太原市| 邓州市| 汽车| 临夏市| 外汇| 临泽县| 松阳县| 缙云县| 马关县| 呈贡县| 景洪市| 加查县| 太仆寺旗| 吴江市| 蒲城县| 晋城| 呼和浩特市| 贵阳市| 永州市| 衡阳市| 临海市|