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
ZLogger NuGet パッケージをインストールする
dotnet add package ZLogger - 2
ASP.NET Core の起動時に既定のプロバイダーをクリアし、ZLogger のコンソールプロバイダーを追加する
収録されている特集
トピック
よくある質問
- 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 の数値は毎日更新されます。
関連プロジェクト
ソース生成によるシリアライズに対応した、.NETとUnity向けの高性能・低アロケーションなC#製YAML 1.2ライブラリ。
Go向けの高速な構造化ログライブラリ。ゼロアロケーションのLoggerと、より柔軟なSugaredLogger APIを提供します。
標準のlogging設定を単一のloggerに置き換え、ファイルのローテーション、カラー出力、構造化ログを提供するPythonロギングライブラリ。
見やすいターミナル出力、フィールド優先の構造化JSON、秘密情報のマスキングに対応した、ランタイム依存ゼロのTypeScript・JavaScript向け汎用ロガー。
拡張可能なフォーマッターとフックを備えた、Go標準のlog API互換ロガー。現在はメンテナンスモード。