Elastic.CommonSchema.Log4net 8.11.1
前缀已保留
.NET Standard 2.0 此包针对 .NET Standard 2.0。该包与此框架或更高版本兼容。 .NET Framework 4.6.1 此包针对 .NET Framework 4.6.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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
#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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
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 字段。
输出
除了必填字段外,输出还包括其他数据
labels
从metadata
(字符串和布尔属性)获取log.origin.file.name
从LocationInformation
获取log.origin.file.line
从LocationInformation
获取log.origin.function
从LocationInformation
获取event.created
从时间戳获取event.timezone
等于本地时区host.hostname
从HostName
属性获取process.thread.id
如果ThreadName
有数字值,则从ThreadName
获取process.thread.name
如果ThreadName
没有数字值,则从ThreadName
获取service.name
从入口或调用程序集获取service.version
从入口或调用程序集获取error.message
从ExceptionObject
获取error.type
从ExceptionObject
获取error.stacktrace
从ExceptionObject
获取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 已计算。 |
-
.NETFramework 4.6.1
- Elastic.CommonSchema (>= 8.11.1)
- log4net (>= 2.0.17)
-
.NETStandard 2.0
- Elastic.CommonSchema (>= 8.11.1)
- log4net (>= 2.0.17)
-
.NETStandard 2.1
- Elastic.CommonSchema (>= 8.11.1)
- log4net (>= 2.0.17)
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 |