Serilog.Sinks.AzureTableStorage 10.0.1

dotnet add package Serilog.Sinks.AzureTableStorage --version 10.0.1                
NuGet\Install-Package Serilog.Sinks.AzureTableStorage -Version 10.0.1                
此命令意图在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的版本 Install-Package
<PackageReference Include="Serilog.Sinks.AzureTableStorage" Version="10.0.1" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Serilog.Sinks.AzureTableStorage --version 10.0.1                
#r "nuget: Serilog.Sinks.AzureTableStorage, 10.0.1"                
#r 指令可用于 F# 互动式和多语言笔记本。将此复制到互动工具或脚本的源代码中以引用包。
// Install Serilog.Sinks.AzureTableStorage as a Cake Addin
#addin nuget:?package=Serilog.Sinks.AzureTableStorage&version=10.0.1

// Install Serilog.Sinks.AzureTableStorage as a Cake Tool
#tool nuget:?package=Serilog.Sinks.AzureTableStorage&version=10.0.1                

Serilog.Sinks.AzureTableStorage Nuget

写入到 Azure 表存储 的表中。

- Serilog.Sinks.AzureTableStorage | 平台 - .NET Standard 2.0

var log = new LoggerConfiguration()
    .WriteTo.AzureTableStorage("<connectionString>")
    .CreateLogger();

配置

配置 描述 默认
connectionString 云存储账户的连接字符串
sharedAccessSignature 存储账户/表格的 SAS 密钥
accountName 存储账户名称
restrictedToMinimumLevel 为了将事件写入到接收器而必须满足的最小日志事件级别。 详细
formatProvider 特定于文化的格式化信息
storageTableName 将写入日志条目的表名称 LogEvent
batchPostingLimit 单次批处理中要发布的最大事件数 100
周期 检查事件批次之间要等待的时间 0:0:2
keyGenerator 用于为每个日志条目创建PartitionKey和RowKey的根本密钥生成器 默认密钥生成器
propertyColumns 特定日志事件属性将作为表列写入
bypassTableCreationValidation 跳过创建表的异常 false
documentFactory 从LogEvent创建表文档的提供商 默认文档工厂
tableClientFactory 创建表客户端的提供商 默认表客户端工厂
partitionKeyRounding 分区密钥舍入时间跨度 0:5:0

JSON配置

可以使用Serilog.Settings.Configuration配置接收器,通过指定appsettings.json中的表名和连接字符串来进行配置

"Serilog": {
  "WriteTo": [
    {"Name": "AzureTableStorage", "Args": {"storageTableName": "", "connectionString": ""}}
  ]
}

必须使用ReadFrom.Configuration()启用JSON配置;有关详细信息,请参阅JSON配置包的文档

XML <appSettings>配置

要使用Serilog.Settings.AppSettings包与文件接收器,如果尚未安装,请首先安装该包

Install-Package Serilog.Settings.AppSettings

而不是在代码中配置记录器,请调用ReadFrom.AppSettings()

var log = new LoggerConfiguration()
    .ReadFrom.AppSettings()
    .CreateLogger();

在您的应用程序的App.configWeb.config文件中,在<appSettings>节点下指定文件接收器程序集和所需路径格式

<configuration>
  <appSettings>
    <add key="serilog:using:AzureTableStorage" value="Serilog.Sinks.AzureTableStorage" />
    <add key="serilog:write-to:AzureTableStorage.connectionString" value="DefaultEndpointsProtocol=https;AccountName=ACCOUNT_NAME;AccountKey=KEY;EndpointSuffix=core.windows.net" />
    <add key="serilog:write-to:AzureTableStorage.formatter" value="Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact" />
  </appSettings>
</configuration>

ASP.NET的示例配置

public static class Program
{
    private const string OutputTemplate = "{Timestamp:HH:mm:ss.fff} [{Level:u1}] {Message:lj}{NewLine}{Exception}";

    public static async Task<int> Main(string[] args)
    {
        // azure home directory
        var homeDirectory = Environment.GetEnvironmentVariable("HOME") ?? ".";
        var logDirectory = Path.Combine(homeDirectory, "LogFiles");

        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Verbose()
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            .Enrich.FromLogContext()
            .WriteTo.Console(outputTemplate: OutputTemplate)
            .WriteTo.File(
                path: $"{logDirectory}/boot.txt",
                rollingInterval: RollingInterval.Day,
                shared: true,
                flushToDiskInterval: TimeSpan.FromSeconds(1),
                outputTemplate: OutputTemplate,
                retainedFileCountLimit: 10
            )
            .CreateBootstrapLogger();

        try
        {
            Log.Information("Starting web host");

            var builder = Microsoft.AspNetCore.Builder.WebApplication.CreateBuilder(args);

            builder.Host
                .UseSerilog((context, services, configuration) => configuration
                    .ReadFrom.Configuration(context.Configuration)
                    .ReadFrom.Services(services)
                    .Enrich.FromLogContext()
                    .Enrich.WithProperty("ApplicationName", builder.Environment.ApplicationName)
                    .Enrich.WithProperty("EnvironmentName", builder.Environment.EnvironmentName)
                    .WriteTo.Console(outputTemplate: OutputTemplate)
                    .WriteTo.File(
                        path: $"{logDirectory}/log.txt",
                        rollingInterval: RollingInterval.Day,
                        shared: true,
                        flushToDiskInterval: TimeSpan.FromSeconds(1),
                        outputTemplate: OutputTemplate,
                        retainedFileCountLimit: 10
                    )
                    .WriteTo.AzureTableStorage(
                        connectionString: context.Configuration.GetConnectionString("StorageAccount"),
                        propertyColumns: new[] { "SourceContext", "RequestId", "RequestPath", "ConnectionId", "ApplicationName", "EnvironmentName" }
                    )
                );

            ConfigureServices(builder);

            var app = builder.Build();

            ConfigureMiddleware(app);

            await app.RunAsync();

            return 0;
        }
        catch (Exception ex)
        {
            Log.Fatal(ex, "Host terminated unexpectedly");
            return 1;
        }
        finally
        {
            await Log.CloseAndFlushAsync();
        }
    }

    private static void ConfigureServices(WebApplicationBuilder builder)
    {
    }

    private static void ConfigureMiddleware(Microsoft.AspNetCore.Builder.WebApplication app)
    {
    }
}

更改日志

10.0.0

  • 破坏性更改:移除writeInBatches,所有写入现在都是分批进行的
  • 更新:更新到serilog 4.0
  • 移除:已从Serilog.Sinks.PeriodicBatching中删除依赖项,使用serilog 4.0的IBatchedLogEventSink

9.6.0

  • 修复:改进时区支持

9.5.0

  • 添加:使用ULID作为rowkey以提高速度和效率

9.4.0

  • 修复:防止重复rowkey

9.1.0

  • 添加:内置跟踪和span id支持

9.0.0

  • 破坏性更改:由于从配置创建提供程序的问题
    • IDocumentFactory.Create添加AzureTableStorageSinkOptions和IKeyGenerator参数
    • IKeyGenerator.GeneratePartitionKey添加AzureTableStorageSinkOptions参数
    • IKeyGenerator.GenerateRowKey添加AzureTableStorageSinkOptions参数
  • 修复:默认文档工厂和默认密钥生成器需要参数无构造函数,用于在配置文件中使用
  • 添加:ITableClientFactory以控制TableClient创建

8.5.0

  • 添加分区密钥舍入选项
  • 移动IKeyGenertor从选项
  • 添加分区密钥和row key的DateTime扩展方法
  • 添加示例Web项目

8.0.0

  • 破坏性更改:对代码库进行大量的重构以简化
    • 移除:已移除AzureTableStorageWithProperties扩展,使用等效的AzureTableStorage
    • 移除:已移除ICloudTableProvider提供程序
    • 添加:IDocumentFactory以允许控制表文档
    • 更改:PartitionKey和RowKey更改为新实现

7.0.0

  • 更新依赖关系:用Azure.Data.Tables替换Microsoft.Azure.Cosmos.Table

6.0.0

  • 更新依赖项:用1.0.8替换已弃用的包WindowsAzure.Storage Microsoft.Azure.Cosmos.Table
  • 更新依赖项:Serilog 2.10.0

5.0.0

  • 迁移到新的CSPROJ项目系统
  • 更新依赖项:WindowsAzure.Storage 8.6.0,Serilog 2.6.0,Serilog.Sinks.PeriodicBatching 2.1.1
  • 修复#36 - 允许使用SAS URI进行日志记录。

1.5

  • 从serilog/serilog迁移
产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 兼容。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 兼容。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包 (9)

显示依赖于 Serilog.Sinks.AzureTableStorage 的前 5 个 NuGet 包

包名 下载
TouchConvert.Tenant.Api.V1.Dtos

TouchConvert 一版 API 的数据传输对象。

TouchConvert.Tenant.Api.V2.Dtos

TouchConvert 二版 API 的数据传输对象。

BumperLane.Hosted.Api.V2.Application

BumperLane 内核 API 功能

AzureWebFarm.OctopusDeploy

使用 Windows Azure Web Roles 的可扩展,由 OctopusDeploy 驱动的 webfarm。

MewPro.MewService

包描述

GitHub 仓库

该包未在任何流行的 GitHub 仓库中使用。

版本 下载 最后更新
10.0.1 1,034 7/26/2024
10.0.0 4,833 7/10/2024
10.0.0-beta.1 387 6/3/2024
9.7.1 20,985 5/29/2024
9.7.0 6,182 5/10/2024
9.6.0 17,115 4/26/2024
9.5.0 17,743 4/10/2024
9.4.1 12,768 3/10/2024
9.3.0 2,060 3/6/2024
9.2.0 51,224 12/11/2023
9.1.0 14,631 11/9/2023
9.0.0 64,158 8/6/2023
9.0.0-beta.2 112 8/1/2023
9.0.0-beta.1.1 111 8/1/2023
8.5.42-alpha.0.7 102 8/1/2023
8.5.41 39,211 6/24/2023
8.5.39-beta 554 6/24/2023
8.5.38 80,339 5/8/2023
8.5.36-beta 599 5/2/2023
8.0.35 5,090 4/16/2023
8.0.33-beta 527 4/16/2023
8.0.31-beta 595 4/16/2023
8.0.30-beta 584 4/11/2023
8.0.28-beta 619 4/10/2023
8.0.27-beta 638 3/27/2023
7.0.25 30,752 3/25/2023
7.0.22-beta 641 3/25/2023
6.0.0-dev-00146 17,910 4/29/2021
5.0.0 1,307,305 7/28/2020
5.0.0-dev-00116 93,215 9/8/2018
5.0.0-dev-00111 2,459 9/4/2018
5.0.0-dev-00109 1,174 9/4/2018
5.0.0-dev-00105 8,020 5/9/2018
5.0.0-dev-00101 1,413 4/24/2018
5.0.0-dev-00093 6,698 3/20/2018
4.0.0 1,545,444 6/13/2017
4.0.0-dev-00089 1,563 5/22/2017
4.0.0-dev-00082 4,721 3/14/2017
4.0.0-dev-00079 1,569 3/4/2017
4.0.0-dev-00077 1,439 3/1/2017
4.0.0-dev-00074 1,353 2/28/2017
4.0.0-dev-00069 2,809 2/13/2017
3.0.1-dev-00067 2,759 2/3/2017
3.0.0 189,095 11/22/2016
3.0.0-dev-00055 1,458 10/14/2016
3.0.0-dev-00052 1,375 10/7/2016
3.0.0-dev-00045 2,329 10/6/2016
3.0.0-dev-00044 2,518 10/3/2016
3.0.0-dev-00039 1,558 10/3/2016
2.0.1-dev-00030 2,451 7/19/2016
2.0.0 56,577 6/29/2016
2.0.0-beta-20 2,421 4/26/2016
1.5.14 36,293 4/17/2016
1.5.11 12,735 12/26/2015
1.5.5 32,520 4/2/2015
1.5.4 3,047 4/2/2015
1.5.3 1,781 4/1/2015
1.5.2 2,551 3/30/2015
1.5.1 1,713 3/27/2015
1.4.196 2,442 2/22/2015
1.4.182 2,001 2/15/2015
1.4.168 1,942 2/8/2015
1.4.155 1,820 2/1/2015
1.4.139 1,689 1/23/2015
1.4.118 1,828 1/13/2015
1.4.113 1,992 1/6/2015
1.4.102 2,284 12/21/2014
1.4.99 2,131 12/18/2014
1.4.97 2,027 12/18/2014
1.4.76 2,027 12/8/2014
1.4.75 1,999 12/7/2014
1.4.39 1,915 11/26/2014
1.4.34 1,851 11/24/2014
1.4.28 1,854 11/24/2014
1.4.27 1,970 11/23/2014
1.4.23 2,011 11/21/2014
1.4.22 1,897 11/21/2014
1.4.21 1,872 11/21/2014
1.4.18 2,037 11/18/2014
1.4.15 2,239 11/4/2014
1.4.14 1,837 10/23/2014
1.4.13 1,790 10/23/2014
1.4.12 1,891 10/12/2014
1.4.11 1,721 10/8/2014
1.4.10 2,530 9/26/2014
1.4.9 1,856 9/17/2014
1.4.8 1,851 9/11/2014
1.4.7 2,416 9/1/2014
1.4.6 1,796 8/31/2014
1.4.5 1,722 8/27/2014
1.4.4 1,806 8/27/2014
1.4.3 2,699 8/25/2014
1.4.2 1,663 8/23/2014
1.4.1 1,690 8/23/2014
1.3.43 1,849 8/4/2014
1.3.42 1,727 7/30/2014
1.3.41 1,723 7/28/2014
1.3.40 1,726 7/26/2014
1.3.39 1,795 7/25/2014
1.3.37 1,749 7/25/2014
1.3.36 1,762 7/20/2014
1.3.35 1,732 7/17/2014
1.3.34 1,707 7/6/2014
1.3.33 1,722 6/30/2014
1.3.30 1,746 6/19/2014
1.3.29 1,734 6/19/2014
1.3.28 1,755 6/19/2014
1.3.27 1,737 6/18/2014
1.3.26 1,739 6/18/2014
1.3.25 1,772 6/9/2014
1.3.24 1,764 5/21/2014
1.3.23 1,714 5/20/2014
1.3.20 1,814 5/18/2014
1.3.19 1,760 5/17/2014
1.3.18 1,733 5/17/2014
1.3.17 1,741 5/17/2014
1.3.16 1,711 5/17/2014
1.3.15 1,742 5/16/2014
1.3.14 1,738 5/16/2014
1.3.13 1,716 5/16/2014
1.3.12 1,699 5/14/2014
1.3.7 1,736 5/11/2014
1.3.6 1,749 5/9/2014
1.3.5 1,785 5/6/2014
1.3.4 1,716 5/4/2014
1.3.3 1,849 4/28/2014
1.3.1 2,022 4/26/2014
1.2.53 1,841 4/26/2014
1.2.52 1,864 4/24/2014
1.2.51 1,953 4/18/2014
1.2.50 1,944 4/18/2014
1.2.49 1,856 4/17/2014
1.2.48 1,962 4/14/2014
1.2.47 1,932 4/14/2014
1.2.45 1,932 4/13/2014
1.2.44 1,936 4/9/2014
1.2.41 2,205 4/7/2014
1.2.40 1,822 4/7/2014
1.2.39 2,244 3/29/2014
1.2.38 1,833 3/29/2014
1.2.37 1,877 3/29/2014
1.2.29 2,102 3/16/2014
1.2.27 1,823 3/14/2014
1.2.26 1,797 3/12/2014
1.2.25 3,452 2/20/2014
0.9.9 2,537 11/23/2013
0.9.1 2,632 8/24/2013
0.8.6 1,949 7/29/2013
0.8.5 2,048 7/22/2013
0.8.1 2,072 7/9/2013
0.7.2 2,048 7/6/2013
0.6.1 1,964 6/13/2013
0.5.2 2,012 5/27/2013
0.5.1 1,900 5/26/2013
0.4.3 2,223 5/25/2013