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 |