Elastic.CommonSchema.NLog 8.11.1

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

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

Elastic Common Schema NLog 布局

此布局实现将 NLog 事件格式化为符合 Elastic Common Schema 规范的 JSON 表示形式。

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

从 API 使用方法

Layout.Register<EcsLayout>("EcsLayout"); // Register the ECS layout.
var config = new LoggingConfiguration();
var consoleTarget = new ConsoleTarget("console") { Layout = new EcsLayout() };  // Use the ECS layout.
config.AddRule(LogLevel.Debug, LogLevel.Fatal, consoleTarget);
LogManager.Configuration = config;
var logger = LogManager.GetCurrentClassLogger();

在上面的代码片段中,Layout.Register<EcsLayout>("EcsLayout")EcsLayout 注册到 NLog。然后,Layout = new EcsLayout() 行指示 NLog 使用已注册的布局。上面的示例使用控制台目标,但您可以使用任何您喜欢的目标,例如考虑使用文件系统目标并在 Elastic Filebeat 中使用它以实现持久和可靠的数据摄入。

从 NLog.config 使用方法

<nlog>
  <extensions>
    <add assembly="Elastic.Apm.NLog"/>
    <add assembly="Elastic.CommonSchema.NLog"/>
  </extensions>
  <targets>
    <target name="console" type="console">
      <layout xsi:type="EcsLayout">
        <metadata name="MyProperty" layout="MyPropertyValue" /> 
        <label name="MyLabel" layout="MyLabelValue" />          
        <tag layout="MyTagValue" />                             
      </layout>
    </target>
  </targets>
  <rules>
    <logger name="*" minLevel="Debug" writeTo="Console" />
  </rules>
</nlog>

EcsLayout 参数选项

  • 元数据选项

    • IncludeEventProperties - 将日志事件属性包含为元数据。默认:true
    • IncludeScopeProperties - 将 NLog 范围上下文属性包含为元数据。默认:false
    • ExcludeProperties - 要排除的属性名称的逗号分隔字符串。
  • 事件选项

    • EventAction -
    • EventCategory -
    • EventId -
    • EventKind -
    • EventSeverity -
  • 代理选项

    • AgentId -
    • AgentName -
    • AgentType -
    • AgentVersion -
  • 进程选项

    • ProcessExecutable - 默认:${processname:FullName=true}
    • ProcessId - 默认:${processid}
    • ProcessName - 默认:${processname:FullName=false}
    • ProcessTitle - 默认:${processinfo:MainWindowTitle}
    • ProcessThreadId - 默认:${threadid}
    • ProcessThreadName -
  • 服务器选项

    • ServerAddress -
    • ServerIp -
    • ServerUser - 默认:${environment-user}
  • 主机选项

    • HostId -
    • HostIp - 默认:${local-ip:cachedSeconds=60}
    • HostName - 默认:${machinename}
  • 日志源选项

    • LogOriginCallSiteMethod - 默认:${exception:format=method}
    • LogOriginCallSiteFile - 默认:${exception:format=source}
    • LogOriginCallSiteLine -
  • HTTP 选项

    • HttpRequestId - 默认:${aspnet-trace-identifier}
    • HttpRequestMethod - 默认:${aspnet-request-method}
    • HttpRequestBytes - 默认:${aspnet-request-contentlength}
    • HttpRequestReferrer - 默认:${aspnet-request-referrer}
    • HttpResponseStatusCode - 默认:${aspnet-response-statuscode}
  • URL 选项

    • UrlScheme - 默认:${aspnet-request-url:IncludeScheme=true:IncludeHost=false:IncludePath=false}
    • UrlDomain - 默认:${aspnet-request-url:IncludeScheme=false:IncludeHost=true:IncludePath=false}
    • UrlPath - 默认:${aspnet-request-url:IncludeScheme=false:IncludeHost=false:IncludePath=true}
    • UrlPort - 默认:${aspnet-request-url:IncludeScheme=false:IncludeHost=false:IncludePath=false:IncludePort=true}
    • UrlQuery - 默认:${aspnet-request-url:IncludeScheme=false:IncludeHost=false:IncludePath=false:IncludeQueryString=true}
    • UrlUserName - 默认:${aspnet-user-identity}
  • 跟踪选项

    • ApmTraceId - 默认:${ElasticApmTraceId}
  • 事务选项

    • ApmTransactionId - 默认:${ElasticApmTransactionId}

ECS 意识消息模板

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

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

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

EcsLayout 的示例输出

以下是一个输出示例

{
  "@timestamp": "2020-02-20T16:07:06.7109766+11:00",
  "log.level": "Info",
  "message": "Info \"X\" 2.2",
  "ecs.version": "8.6.0",
  "log": {
    "logger": "Elastic.CommonSchema.NLog.Tests.LogTestsBase"
  },
  "labels": {
    "ValueX": "X"
  },
  "agent": {
    "type": "Elastic.CommonSchema.NLog",
    "version": "1.6.0"
  },
  "event": {
    "created": "2020-02-20T16:07:06.7109766+11:00",
    "severity": 6,
    "timezone": "Romance Standard Time"
  },
  "host": {
    "ip": [ "127.0.0.1" ],
    "name": "LOCALHOST"
  },
  "process": {
    "executable": "C:\\Program Files\\dotnet\\dotnet.exe",
    "name": "dotnet",
    "pid": 17592,
    "thread.id": 17592,
    "title": "15.0.0.0"
  },
  "server": { "user": { "name": "MyUser" } },
  "service": {
    "name": "Elastic.CommonSchema",
    "type": "dotnet",
    "version": "1.6.0"
  },
  "metadata": {
    "SomeY": 2.2
  },
  "MessageTemplate": "Info {ValueX} {SomeY} {NotX}"
}

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

这是一款免费软件,许可协议:Apache License 版本 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包 (1)

显示依赖Elastic.CommonSchema.NLog的顶部1个NuGet包

下载
Elastic.NLog.Targets

NLog目标,可直接导出到Elastic Cloud或单个Elasticsearch节点

GitHub仓库

此包未用于任何流行GitHub仓库。

版本 下载 最后更新
8.11.1 22,579 6/10/2024
8.11.0 15,259 4/10/2024
8.6.1 218,115 8/3/2023
8.6.0 44,064 5/9/2023
8.4.0-alpha4 2,073 3/28/2023
8.4.0-alpha3 610 3/15/2023
8.4.0-alpha2 627 3/1/2023
8.4.0-alpha1 618 2/20/2023
1.6.0-alpha1 142,076 6/2/2021
1.5.3 385,018 6/1/2021
1.5.1 18,044 6/3/2020
1.5.0 1,464 3/30/2020
1.4.4 1,009 3/25/2020
1.4.3 1,079 3/16/2020
1.4.2 996 3/6/2020
1.4.1 2,215 2/26/2020