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

推薦する

クラウドプロバイダーが教えてくれないクラウドアーキテクチャに関する3つの秘密

[51CTO.com クイック翻訳] 最適化されたアーキテクチャはありますか?つまり、ソリューション...

モバイルアプリのデザイン: ナビゲーションバーの戻るボタンの代替案

ふう、また夜に新商品を更新する時間です。実際、私は時々 Be For Web にアクセスして、約 2...

ウェブサイトの外部リンク構築の経験と方法について話す

ウェブサイトを構築したことがある友人は、ウェブサイトの外部リンクを構築するのは長くて骨の折れる作業で...

ウェブサイトが罰せられた場合、ウェブマスターは冷静に理由を分析する必要があります。

ウェブサイトのサービスを提供し続けているうちに、ウェブサイトがペナルティを受けるケースに遭遇すること...

オペレーティングシステムzgovps/zgocloudのインストール方法に関する簡単なチュートリアル

最近、zgovps から高性能な日本の VPS を購入した人が、OS のインストール方法がわからない...

サプライチェーン管理はSD-WANにとって重要

SD-WAN は包括的なソリューションではありません。これは、より広範なアプリケーション配信エコシス...

Google への不安定な掲載の原因分析

Fuqing SEO は、皆様のお役に立てればと願って、Google の包含の不安定性について 5 ...

オンラインでブランドをマーケティングする際に避けるべき 7 つの間違い

はじめに:インターネット上には優れた企業が数多く存在しますが、ブランドを適切に管理できず、最終的にブ...

主流の分散ストレージ Ceph がプライベートクラウドのリーダー VMware とどのように衝突するかをご覧ください

ソフトウェア定義、人々はクラウドにいて、私もクラウドにいる私たちの中国語の先生はかつて、「群衆に耐え...

ガーンター:クラウドコンピューティングはIT市場全体の25倍の速さで成長している

6月14日、市場調査会社ガートナーのニュースによると、クラウドコンピューティングは全体の成長率が25...

ウェブサイトの運用開始時に行うべきことは何ですか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...

羅永浩の売上高は97%急落。本当に遅れをとったのか?

ここ二日間で、羅永浩は再び人気が高まった。多くの記事が議論している: ライブストリーミング100日後...

エッジコンピューティングが企業のITをどう変えるか

2018 年初頭に発表されたデータによると、エッジ コンピューティング セクターの支出は 2022 ...

Google はブログ投稿がソフト記事であるかどうかをどのように評価しますか?

マット・カッツ氏は次のように語った。「スパム報告に遭遇した場合、私たちは舞台裏でSPAMチームを徹底...

百度百科事典は拡張読書の中止を発表し、外部リンクにnofollowタグを追加

百度百科事典は、その一貫した専門性、権威、そして百度独自の製品であるという事実により、ウェブマスター...