ElasticSearch+NLog は .Net Core 分散ログ管理を実装します

ElasticSearch+NLog は .Net Core 分散ログ管理を実装します

[[385847]]

この記事はWeChatの公開アカウント「UP Technology Control」から転載したもので、著者はconan5566です。この記事を転載する場合は、UP Technology Controlの公式アカウントまでご連絡ください。

概要

Elasticsearch は、ログ分析、全文検索、構造化データ分析など、さまざまなシナリオで幅広く使用でき、複数の専用システムを維持するコストを大幅に削減できるため、オープンソース コミュニティで非常に人気があります。システムでは、ログがファイルとして出力されると、システムログを閲覧するのが非常に不便になります。ログがデータベースに保存されている場合、全文検索は実行できません。ここでは、ログを ElasticSearch に出力し、Kibana を使用してログを検索します。

実装

1. esサービスアドレスを設定する

  1. {
  2. 「接続文字列」 : {
  3. "ElasticSearchServerAddress" : "http://localhost:9200"  
  4. },
  5. 「ログ」 : {
  6. 「ログレベル」 : {
  7. 「デフォルト」 「警告」  
  8. }
  9. },
  10. 「許可ホスト」 : 「*」  
  11. }

2. nlog.configを構成する

  1. <?xml バージョン = "1.0"エンコーディング = "utf-8" ?>
  2. <nlog xmlns= "http://www.nlog-project.org/schemas/NLog.xsd"  
  3. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"  
  4. 内部ログコンソール = "true" >
  5. <拡張機能>
  6. < アセンブリを追加= "NLog.Targets.ElasticSearch" />
  7. </拡張子>
  8.  
  9. <ターゲット>
  10. <! --ElasticSearch はログ情報を保存します -->  
  11. <ターゲット= "ElasticSearch" xsi:type= "ElasticSearch"接続文字列名 = "ElasticSearchServerAddress"  
  12. index = "userapi-${date:format=yyyy.MM.dd}" documentType = "doc" includeAllProperties = "true"  
  13. レイアウト= "[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${logger} ${message} ${exception:format=toString}" >
  14. <フィールド= "MachineName"レイアウト = "${machinename}" />
  15. <フィールド= "時間"レイアウト = "${longdate}" />
  16. <フィールド= "レベル"レイアウト = "${level:uppercase=true}" />
  17. <フィールド= "logger"レイアウト = " ${logger}" />
  18. <フィールド= "メッセージ"レイアウト = " ${message}" />
  19. <フィールド= "例外"レイアウト = " ${exception:format=toString}" />
  20. <フィールド= "プロセスID"レイアウト = " ${プロセスID}" />
  21. <フィールド= "スレッド名"レイアウト = " ${スレッド名}" />
  22. <フィールド= "stacktrace"レイアウト = " ${stacktrace}" />
  23. <フィールド= "プロパティ"レイアウト = "${machinename} ${longdate} ${level:uppercase=true} ${logger} ${message} ${exception}|${processid}|${stacktrace}|${threadname}" />
  24. </ターゲット>
  25. </ターゲット>
  26. <ルール>
  27. <logger name = "*" minlevel= "INFO" writeTo= "ElasticSearch" />
  28. </ルール>
  29. </nlog>

3. テスト書き込みログ

  1. // API/を取得する 
  2. [HttpGet]
  3. パブリックActionResult<IEnumerable<文字列>> Get()
  4. {
  5. var result = 新しい文字列[] { "value1" "value2" };
  6. _logger.LogInformation(JsonConvert.SerializeObject(結果));
  7. 結果を返します
  8. }

効果

<<:  VMware は仮想化を加速するために SmartNIC をサポートしています

>>:  Hongmeng HarmonyOS 開発中の分散フロー開発における一般的なエラーに関する FAQ

推薦する

hostsailor - ルーマニア 1Gbps 帯域幅、OpenVZ 仮想 VPS、簡単なレビュー

ビジネス上の都合でルーマニアのデータセンターのマシンを使用する必要がある友人もいるかもしれません。こ...

ウェブサイトランキングの4つの段階をスムーズに通過する方法

Baidu 最適化における当社の経験によると、新規サイトの SEO 最適化とランキングは、新規サイト...

digitalocean vps 無料 $10 メソッド (さらに 2 か月間使用可能)

Digitalocean は 10 ドル分を無料で提供しているので、あと 2 か月間無料で使用できま...

SEOのヒント: ソフトな記事は実際にはソフトではない

第一に、ソフトな物品の直接的な影響最も直接的に一般大衆に受け入れられるという観点から、ソフト記事の役...

アーキテクチャの成長への道: 分散システムの設計方法、Elasticsearch の仕組みをご覧ください

[[269842]]分散システムにはさまざまな種類があり、非常に広範囲にわたります。システムの種類に...

HDFS、Ceph、GFS、GPFS、Swift、Lustre... コンテナ クラウドに適した分散ストレージはどれでしょうか?

[[315604]]コンテナ クラウドで分散ストレージを使用する場合、HDFS、CEPH、GFS、G...

Yunxi Technology: マーケティングチェーンを再構築し、企業のデジタル変革を推進

[51CTO.comからのオリジナル記事] デジタル経済の時代では、シナリオベースの消費、チャネルの...

北京の知恵、クラウドが企業のデジタル変革を支援

2021年3月28日、CIOタイムズアカデミーと新インフライノベーション研究所が共催する「2021年...

SEOは外部リンクとフォーム操作をマスターし、トレンドに追従して予想外の勝利を収めるべき

キーワードランキングを向上させる場合、キーワードの外部リンクは非常に重要であり、検索エンジンがウェブ...

「偽基地局」の第一例、16万通のスパムメールを大量送信、繁忙期に1日3000元を稼ぎ、懲役4年の判決

「偽基地局」事件初の男に懲役4年の判決執行官は「偽の基地局」機器を証拠として法廷に持ち込み、展示した...

杭州19階の「地域コミュニティ空母」は失敗する運命にある。地域コミュニティはすぐには複製できない。

最近、地元で有名なコミュニティである杭州19階がコミュニティ複製計画を公表しました。このモデルが成功...

timeweb: 月額 16 元、ロシア VPS、200Mbps 無制限トラフィック、1G メモリ/1 コア/10g NVMe

timeweb(ロシアの信頼できるブランド、13年間運営)からの最新ニュース:価格は変更せずに、公式...

ウェブサイトのランキング向上におけるタイトルタグの役割

タイトルの書き方A:タイトルタグは、ウェブサイトのランキングを向上させる上で非常に重要な役割を果たし...

Java 20周年: クラウドネイティブに対応

過去 10 年間で、企業の IT 環境は、大規模なモノリシック アプリケーションから、より軽量なモジ...

ウェブサイトコンテンツの重複を排除する方法を分析する

最近の百度アップデートイベントでは、多くのウェブサイトが百度によって修正されました。これらの悲惨なウ...