Elastic.NLog.Targets 8.11.1

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

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

Elastic.NLog.Targets

一个直接写入 ElasticsearchElastic Cloud 的 NLog 目标

将 .NET 程序集作为包名 Elastic.NLog.Targets 发布到 NuGet

如何从 API 使用

var config = new LoggingConfiguration();
var elasticTarget = new ElasticsearchTarget("elastic") { Layout = new EcsLayout(), NodesUri = "http://localhost:9200" };
config.AddRule(LogLevel.Debug, LogLevel.Fatal, elasticTarget);
LogManager.Configuration = config;
var logger = LogManager.GetCurrentClassLogger();

如何从 NLog.config 使用

<nlog>
  <extensions>
    <add assembly="Elastic.Apm.NLog"/>
    <add assembly="Elastic.CommonSchema.NLog"/>
    <add assembly="Elastic.NLog.Targets"/>
  </extensions>
  <targets>
    <target name="elastic" type="ElasticSearch" nodeUris="http://localhost:9200">
      <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="elastic" />
  </rules>
</nlog>

ElasticsearchTarget 参数选项

  • 导出目的地

    • NodePoolType - 连接池类型
      • SingleNode - 单节点或端点池
      • Sniffing - 支持 Re-seeding 的池
      • Static - 不支持 Re-seeding 的池
      • Sticky - 不支持 Re-seeding 并保留在第一个节点上。
      • StickySniffing - 支持 Re-seeding 并保留在第一个节点上。
      • Cloud - 使用 CloudId 来初始化的池
    • NodeUris - 连接池中 Elasticsearch 节点的 URI(以逗号分隔)
    • CloudId - 当使用 NodePoolType = Cloud 时
  • 导出身份验证

    • ApiKey - 当使用 NodePoolType = Cloud 并通过 API 键进行身份验证时
    • 用户名 - 当通过用户名/密码进行基本身份验证时。
    • 密码 - 当通过用户名/密码进行基本身份验证时。
  • 导出缓冲区

    • InboundBufferMaxSize - 内存中可以排队等待的最大正在运行的实例数。默认值 = 100000
    • OutboundBufferMaxSize - 导出的最大尺寸。默认值 = 1000
    • OutboundBufferMaxLifetimeSeconds - 可以导出的缓冲区的最大寿命(秒)。默认值 = 5秒
    • ExportMaxConcurrency - 允许在频道上轮询新事件的消费者最大数量。默认值 = 1
    • ExportMaxRetries - 重试导出的最大次数。默认值 = 3
  • 导出数据流

    • DataStreamType - 描述数据的通用类型。默认值 = 'logs'
    • DataStreamSet - 描述摄取的数据及其结构。默认值 = 'dotnet'
    • DataStreamNamespace - 用户可配置的任意分组。默认值 = 'default'

请注意,导出依赖于内存队列,该队列在应用程序崩溃/退出的情况下会丢失。如果需要更高的交付担保,请考虑使用Elastic.CommonSchema.NLog与NLog FileTarget结合使用,并使用filebeat来发送这些日志。

查看Elastic Agent & Fleet以简化边缘上收集日志和指标。

Elasticsearch目标布局配置

NLog布局允许从环境配置NLog目标选项。

从appsettings.json中查找NodeUris

  <target name="elastic" type="ElasticSearch" nodeUris="${configsetting:ConnectionStrings.ElasticSearch}">

.NET Core上的appsettings.json示例

  {
    "ConnectionStrings": {
      "ElasticSearch": "http://localhost:9200"
    }
  }

从app.config中查找NodeUris

  <target name="elastic" type="ElasticSearch" nodeUris="${appsetting:ConnectionStrings.ElasticSearch}">

.NET Framework上的app.config示例

  <configuration>
    <connectionStrings>
      <add name="ElasticSearch" connectionString="http://localhost:9200"/>
    </connectionStrings>
  </configuration>

从环境变量中查找ConnectionString

  <target name="elastic" type="ElasticSearch" nodeUris="${environment:ELASTIC_SERVER_URL}">
产品 兼容的和额外的计算目标框架版本。
.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 240 6/10/2024