91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

孟津县| 枞阳县| 屯昌县| 介休市| 奇台县| 青河县| 兴城市| 北海市| 黑龙江省| 彝良县| 买车| 潮州市| 绥阳县| 晋城| 宝应县| 贵溪市| 达孜县| 汶川县| 稻城县| 尉氏县| 塔城市| 惠州市| 南丰县| 黔西| 麻栗坡县| 北宁市| 浦县| 峡江县| 彰化市| 南阳市| 大宁县| 密山市| 岳池县| 金堂县| 永定县| 扬州市| 温泉县| 库车县| 邯郸县| 茶陵县| 普兰县|