Repolode
Cysharp

Cysharp/ZLogger

Microsoft.Extensions.Loggingを基盤とし、UTF8出力に対応した.NETおよびUnity向けのゼロアロケーションなテキスト・構造化ロガー。

スター
1,789
フォーク
130
未解決の Issue
5
最終コミット
3 日前

これは何?

ZLoggerは、Microsoft.Extensions.Loggingに組み込んで使える.NETおよびUnity向けのロギングライブラリです。ログメッセージの記述にはC#の文字列補間を使い、コンソール、ファイル、ストリーム、カスタムプロセッサーへUTF8で直接出力します。一般的な文字列ベースのロガーで発生するUTF16からUTF8への変換コストを回避できます。

プレーンテキストと、構造化されたJSONまたはMessagePackの出力に対応しています。パラメーター名の指定、オブジェクトのJSON出力、キー名やタイムスタンプ形式のカスタマイズも可能です。組み込みプロバイダーとしてConsole、File、RollingFile、Stream、InMemoryを備え、バッチ処理プロセッサーを使ってログをHTTP経由で送信できます。[ZLoggerMessage]属性用のソースジェネレーターはコンパイル時にログメソッドを生成し、System.Text.Jsonのソース生成によるNative AOTにも対応します。

ZLoggerは.NET Standard 2.0以降を対象とし、.NET 8以降で最高のパフォーマンスを発揮します。

主な機能

  • 01ログメッセージにC#の文字列補間を使い、パラメーターを構造化プロパティとして記録します。
  • 02文字列のエンコードに伴うオーバーヘッドを避け、UTF8で直接出力します。
  • 03プレーンテキスト、JSON、MessagePackの各フォーマッターに対応しています。
  • 04Console、File、RollingFile、Stream、InMemoryの出力プロバイダーを備えています。
  • 05コンパイル時にZLoggerMessageのログメソッドを生成するソースジェネレーターを含みます。
  • 06標準のロギングビルダーを通じて、ASP.NET CoreおよびGeneric Hostと連携します。

ユースケース

  • コンテナー化された.NETサービスやクラウドネイティブな.NETサービスで、大量のコンソール出力を記録する。
  • 構造化JSONログをファイルやクラウドのログパイプラインに書き込む。
  • .NETアプリケーションで、日付またはサイズによるローテーションに対応した高速なファイルロギングを追加する。
  • 同じAPIを使ってUnityプロジェクトからログを記録する。

クイックスタート

  1. 1

    ZLogger NuGet パッケージをインストールする

    dotnet add package ZLogger
  2. 2

    ASP.NET Core の起動時に既定のプロバイダーをクリアし、ZLogger のコンソールプロバイダーを追加する

収録されている特集

トピック

#logging#dotnet#csharp#structured-logging#zero-allocation#utf8#source-generator

よくある質問

ZLogger とは?
Microsoft.Extensions.Loggingを基盤とし、UTF8出力に対応した.NETおよびUnity向けのゼロアロケーションなテキスト・構造化ロガー。 ZLoggerは、Microsoft.Extensions.Loggingに組み込んで使える.NETおよびUnity向けのロギングライブラリです。ログメッセージの記述にはC#の文字列補間を使い、コンソール、ファイル、ストリーム、カスタムプロセッサーへUTF8で直接出力します。一般的な文字列ベースのロガーで発生するUTF16からUTF8への変換コストを回避できます。
ZLogger は無料で使えますか?ライセンスは?
ZLogger は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ZLogger は今もメンテナンスされていますか?
活発にメンテナンス中。ZLogger の最終コミットは 2026年11月4日 です。
ZLogger は何に使えますか?
コンテナー化された.NETサービスやクラウドネイティブな.NETサービスで、大量のコンソール出力を記録する。 構造化JSONログをファイルやクラウドのログパイプラインに書き込む。 .NETアプリケーションで、日付またはサイズによるローテーションに対応した高速なファイルロギングを追加する。 同じAPIを使ってUnityプロジェクトからログを記録する。
ZLogger のインストール方法は?
ZLogger NuGet パッケージをインストールする: dotnet add package ZLogger ASP.NET Core の起動時に既定のプロバイダーをクリアし、ZLogger のコンソールプロバイダーを追加する
ZLogger はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Cysharp/ZLogger

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト