Asp.Net 网络 Api 日志记录

Asp.Net Web Api Logging

我想在我的 asp.net 网络 api(不是 Asp.Net 核心)上设置日志记录,并想确保我遵循最佳实践(尽可能接近)。我在我的服务中使用 SeriLog,也想将此产品用于我的 Web Api。我不确定在 Web API 中设置日志记录的最佳方法,我想根据上下文(我的 api 服务于多个应用程序)进行设置,我希望能够登录到单独的 Microsoft Sql 服务器。有人可以提供一些关于如何开始这项任务的指导、潜在的陷阱,或者 link 一篇我还没有找到关于如何在 Asp.Net 中设置它的文章吗?

有一个来自 Serilog 的库 (MSSQL-Server)

您可以创建一个集中式logger项目,只在该项目中添加serilog包,在需要使用serilog(您的服务)的地方引用该项目。

并使用 Serilog.Settings.AppSettings 包配置 serilog,以便每个服务项目将从服务 web.config 中的 <appSettings> 部分读取自己的配置(例如:单独的 Microsoft SQL 服务器)在 LoggerConfiguration

上使用 ReadFrom.AppSettings() 扩展方法

样本记录器Class

public static class Logger
{
    private static readonly ILogger _dbLogger;

    static Logger()
    {
        _dbLogger = new LoggerConfiguration()
            .ReadFrom.AppSettings()
            .CreateLogger();
    }

    public static void Log(string error)
    {
        _dbLogger.Error(error);
    }
}

示例 appSettings 配置

<add key="serilog:using:MSSqlServer" value="Serilog.Sinks.MSSqlServer" />
<add key="serilog:write-to:MSSqlServer.connectionString" value="Server=..."/>
<add key="serilog:write-to:MSSqlServer.tableName" value="Logs"/>
<add key="serilog:write-to:MSSqlServer.autoCreateSqlTable" value="true"/>