Elastic.CommonSchema.Log4net 8.11.1

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

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

Elastic Common Schema log4net 布局

此布局实现将 log4net 事件格式化为遵守 Elastic Common Schema 规范的 JSON 表示形式。

.NET 库以包名 Elastic.CommonSchema.Log4net 发布到 NuGet 上。

从配置中使用的方法

在 appender 的配置中指定布局类型

<log4net>
    <root>
        <level value="INFO" />
        <appender-ref ref="ConsoleAppender" />
    </root>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <layout type="Elastic.CommonSchema.Log4net.EcsLayout, Elastic.CommonSchema.Log4net" />
    </appender>
</log4net>

从 API 中使用的方法

var hierarchy = (Hierarchy)LogManager.CreateRepository(Guid.NewGuid().ToString());
var appender = new ConsoleAppender { Layout = new EcsLayout() }; // Use the ECS layout.
hierarchy.Root.AddAppender(appender);
hierarchy.Root.Level = Level.All;
hierarchy.Configured = true;

如下所示的 Layout = new EcsLayout() 行指示 log4net 使用 ECS 布局。上面的示例使用控制台 appender,但您可以选择使用任何 appender,也许可以考虑使用文件系统目标和 Elastic Filebeat 以保证持久和可靠的数据摄入。

ECS properties

支持在 LogTemplateProperties.* 下可用的任何有效 ECS 日志模板属性,例如 LogTemplateProperties.TraceId,这将直接设置适当的 ECS 字段。

输出

除了必填字段外,输出还包括其他数据

  • labelsmetadata(字符串和布尔属性)获取
  • log.origin.file.nameLocationInformation 获取
  • log.origin.file.lineLocationInformation 获取
  • log.origin.functionLocationInformation 获取
  • event.created 从时间戳获取
  • event.timezone 等于本地时区
  • host.hostnameHostName 属性获取
  • process.thread.id 如果 ThreadName 有数字值,则从 ThreadName 获取
  • process.thread.name 如果 ThreadName 没有数字值,则从 ThreadName 获取
  • service.name 从入口或调用程序集获取
  • service.version 从入口或调用程序集获取
  • error.messageExceptionObject 获取
  • error.typeExceptionObject 获取
  • error.stacktraceExceptionObject 获取
  • metadata 从属性获取。它还包括记录了格式化消息时的消息模板和参数

示例日志事件输出(格式化以提高可读性)

{
    "@timestamp": "2022-08-28T14:06:28.5121651+02:00",
    "log.level": "INFO",
    "message": "Hi! Welcome to example!",
    "ecs.version": "8.6.0",
    "log": {
        "logger": "Elastic.CommonSchema.Log4net.Example.Program",
        "original": null,
        "origin": {
            "file": {
                "name": "C:\\Development\\Elastic.CommonSchema.Log4net.Example\\Program.cs",
                "line": 17
            },
            "function": "Main"
        }
    },
    "labels": {
        "MessageTemplate": "{0}! Welcome to example!"
        "0": "Hi"
    },
    "agent": {
        "type": "Elastic.CommonSchema.Log4net.Example",
        "version": "1.0.0.0"
    },
    "event": {
        "created": "2024-04-02T17:43:55.3829964+02:00",
        "timezone": "W. Europe Standard Time"
    },
    "host": {
        "os": {
            "full": "Microsoft Windows 10.0.22631",
            "platform": "Win32NT",
            "version": "10.0.22631.0"
        },
        "architecture": "X64",
        "hostname": "HGU780D3",
        "name": "HGU780D3"
    },
    "process": {
        "name": "Elastic.CommonSchema.Log4net.Example",
        "pid": 39652,
        "thread.id": 17,
        "thread.name": ".NET Long Running Task",
        "title": ""
    },
    "service": {
        "name": "Elastic.CommonSchema.Log4net.Example",
        "type": "dotnet",
        "version": "1.0.0.0"
    },
    "user": {
        "domain": "company",
        "name": "user"
    },
    "metadata": {
        "GlobalAmountProperty": 3.14
    }
}

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

这是一款免费软件,遵循以下协议: Apache 许可证 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 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 包

此包未由任何 NuGet 包使用。

GitHub 仓库

此包未由任何流行的 GitHub 仓库使用。

版本 下载 上次更新
8.11.1 1,754 6/10/2024
8.11.0 595 4/10/2024
8.6.1 15,827 8/3/2023
8.6.0 2,444 5/9/2023
8.4.0-alpha4 138 3/28/2023
8.4.0-alpha3 137 3/15/2023
8.4.0-alpha2 144 3/1/2023
8.4.0-alpha1 155 2/20/2023