Elastic.CommonSchema.Serilog 8.11.1

前缀已保留
dotnet add package Elastic.CommonSchema.Serilog --version 8.11.1                
NuGet\Install-Package Elastic.CommonSchema.Serilog -Version 8.11.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块版本的 Install-Package
<PackageReference Include="Elastic.CommonSchema.Serilog" Version="8.11.1" />                
对于支持 PackageReference 的项目,请将此 XML 节复制到项目文件中以引用软件包。
paket add Elastic.CommonSchema.Serilog --version 8.11.1                
#r "nuget: Elastic.CommonSchema.Serilog, 8.11.1"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此内容复制到交互工具或脚本源代码中,以引用软件包。
// Install Elastic.CommonSchema.Serilog as a Cake Addin
#addin nuget:?package=Elastic.CommonSchema.Serilog&version=8.11.1

// Install Elastic.CommonSchema.Serilog as a Cake Tool
#tool nuget:?package=Elastic.CommonSchema.Serilog&version=8.11.1                

Elastic Common Schema Serilog 文本格式化程序

ITextFormatter 实现将 Serilog 事件格式化为符合 Elastic Common Schema 规范的 JSON 表示形式。

软件包

.NET 程序集以 Elastic.CommonSchema.Serilog 包名发布到 NuGet。

如何启用

var logger = new LoggerConfiguration()
                .WriteTo.Console(new EcsTextFormatter())
                .CreateLogger();

在上面的代码片段中,new EcsTextFormatter() 启用文本格式化程序并指示 Serilog 将事件格式化为 JSON。上面的示例使用控制台接收器,但你可以使用任何你选择的接收器,也许可以考虑使用文件系统接收器以及 Elastic Filebeat 以实现耐用和可靠的摄取。

In ASP.NET(核心)应用程序

.UseSerilog((ctx, config) =>
{
  // Ensure HttpContextAccessor is accessible
  var httpAccessor = ctx.Configuration.Get<HttpContextAccessor>();

  config
    .ReadFrom.Configuration(ctx.Configuration)
    .Enrich.WithEcsHttpContext(httpAccessor)
    .WriteTo.Async(a => a.Console(new EcsTextFormatter()));
})

WithEcsHttpContext 确保日志将富含 HttpContext 数据。

以下是一个示例输出

{
  "@timestamp": "2019-11-22T14:59:02.5903135+11:00",
  "log.level": "Information",
  "message": "Info \"X\" 2.2",
  "ecs.version": "8.6.0",
  "log": { "logger": "Elastic.CommonSchema.Serilog.Tests.MessageTests" },
  "labels": {
    "MessageTemplate": "Info {ValueX} {SomeY}",
    "ValueX": "X",
    "ThreadName": ".NET Long Running Task"
  },
  "agent": {
    "type": "Elastic.CommonSchema.Serilog",
    "version": "1.6.0"
  },
  "event": {
    "created": "2019-11-22T14:59:02.5903135+11:00",
    "severity": 2,
    "timezone": "Romance Standard Time"
  },
  "host": {
    "os": {
      "full": "Microsoft Windows 10.0.19045",
      "platform": "Win32NT",
      "version": "10.0.19045.0"
    },
    "architecture": "X64",
    "hostname": "LOCALHOST",
    "name": "LOCALHOST"
  },
  "process": {
    "name": "dotnet",
    "pid": 1440,
    "thread.id": 15,
    "thread.name": ".NET Long Running Task",
    "title": ""
  },
  "server": { "user": { "name": "MyDomain\\MyUserName" } },
  "service": {
    "name": "Elastic.CommonSchema",
    "type": "dotnet",
    "version": "1.6.0"
  },
  "user": {
    "domain": "MyDomain",
    "name": "MyUserName"
  },
  "metadata": {
    "SomeY": 2.2
  }
}

配置

选项 描述
MapCurrentThead 通过从当前线程中查找Process来映射 ecs.processtrue
MapHttpAdapter null是一种将HttpContextAccessor映射到ECS字段的途径。
LogEventsPropertiesToFilter 一个不应该作为labels.*metadata.*发出属性的Set<string>集合
MapCustom 一个Func,允许您在完全转换为EcsDocument之前修改它。

ECS Aware Message Templates

这个格式化程序还允许您使用遵循https://messagetemplates.org/格式的属性,直接从消息模板设置ECS字段。

可用的ECS消息模板属性列在LogTemplateProperties.*下,例如LogTemplateProperties.TraceId

Log.Information("The time is {TraceId}", "my-trace-id");

将覆盖结果ECS json文档中的trace.id

本软件版权所有(c)2014-2020 Elasticsearch BV。

这是免费软件,根据以下许可证发布:Apache License Version 2.0

产品 兼容和额外的计算目标框架版本。
.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标准 netstandard2.0 兼容。 netstandard2.1 兼容。
.NET框架 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 标准 的信息。

NuGet包 (18)

显示依赖Elastic.CommonSchema.Serilog的前5个NuGet包

下载
Serilog.Sinks.Logz.Io

Serilog事件输出到Logz.io。

Elastic.Serilog.Sinks

包描述

Sitko.Core.ElasticStack

Sitko.Core是一系列库,用于快速构建.NET Core应用程序

BioEngine.Extra.ElasticStack

包描述

Serilog.Sinks.Http.LogzIo

Serilog事件输出到Logz.io。

GitHub仓库 (3)

显示依赖于Elastic.CommonSchema.Serilog的排名前3的GitHub仓库

仓库 星星
jerrytang67/SoMall
社交电商商城开源项目.socail+mall即取名SoMall, abp netcore 3.1 angular vue uni-app typescript docker mssql
damikun/trouble-training
包括分布式跟踪和监控的全栈DDD/CQRS与GraphQL工作坊。这展示了从React前端到.NET后端的配置。
sitkoru/Sitko.Core
Sitko.Core是一系列库,用于快速构建.NET Core应用程序
版本 下载 最后更新
8.11.1 145,337 6/10/2024
8.11.0 274,741 4/10/2024
8.6.1 1,320,899 8/3/2023
8.6.0 338,253 5/9/2023
8.4.0-alpha4 10,033 3/28/2023
8.4.0-alpha3 496 3/15/2023
8.4.0-alpha2 470 3/1/2023
8.4.0-alpha1 941 2/20/2023
1.6.0-alpha1 80,778 6/2/2021
1.5.3 7,197,307 6/1/2021
1.5.1 1,463,636 6/3/2020
1.5.0 145,197 3/30/2020
1.4.4 1,543 3/25/2020
1.4.3 5,486 3/16/2020
1.4.2 25,049 3/6/2020
1.4.1 9,371 2/26/2020
1.4.0 11,954 1/29/2020
1.4.0-beta1 826 1/7/2020