Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9301

Serilogの設定ファイル(デスクトップアプリケーション向け)JSON版

$
0
0

はじめに

Serilogの設定ファイルを備忘のため残します。
デスクトップアプリケーション向けの設定内容です。

ログレベル別に2種類(全レベル/Warning以上)× 出力形式別に2種類(通常のテキスト形式/JSON形式)
で合計4ファイルを出力する内容となっています。
各設定項目の意味は、コメントとして記載しています。

Nugetパッケージ

インストールしたSerilog関連のNugetパッケージは以下の通りです。

  • Serilog
  • Serilog.Enrichers.AssemblyName
  • Serilog.Enrichers.Environment
  • Serilog.Enrichers.Memory
  • Serilog.Enrichers.Process
  • Serilog.Enrichers.Thread
  • Serilog.Exceptions
  • Serilog.Filters.Expressions
    • 非推奨のパッケージ。.NET Core 以上であれば Serilog.Expressions
  • Serilog.Formatting.Compact
  • Serilog.Settings.Configuration
  • Serilog.Sinks.File

設定ファイル(.json)

{"Serilog":{"Using":["Serilog.Sinks.File"],//ファイルに出力"MinimumLevel":{//最小ログレベル"Default":"Verbose"},"Enrich":[//拡張"WithThreadId",//スレッドID"WithThreadName",//スレッド名"WithMachineName",//マシン名"WithEnvironmentUserName",//ユーザー名"WithProcessId",//プロセスID"WithProcessName",//プロセス名"WithAssemblyName",//アセンブリ名"WithAssemblyVersion",//アセンブリバージョン"WithMemoryUsage",//メモリ使用量"WithExceptionDetails"//例外の詳細情報],"WriteTo":[{//通常のテキスト形式で、全レベルのログを出力するためのLogger"Name":"Logger","Args":{"configureLogger":{"WriteTo":[{"Name":"File","Args":{//ログファイルパス"path":"Logs/All/Default/all.log",//ログファイルのフォーマット"outputTemplate":"{Timestamp:yyyy-MM-dd HH:mm:ss} | [{Level:u3}] | {ThreadId:00}:{ThreadName} | {ProcessId:00}:{ProcessName} | {Message:lj} | {AssemblyName} | {AssemblyVersion} | {MachineName} | {EnvironmentUserName} | {MemoryUsage} B | {NewLine}{Exception}",//1日毎にロールする"rollingInterval":"Day",//直近の7ファイルを保持する(デフォルトでは直近の31ファイル)"retainedFileCountLimit":7,//ファイルサイズの制限を削除(デフォルトでは1GB)"fileSizeLimitBytes":null,//書き込みをバッファリングする"buffered":true}}]}}},{//JSON形式で、全レベルの構造化ログを出力するためのLogger"Name":"Logger","Args":{"configureLogger":{"WriteTo":[{"Name":"File","Args":{"path":"Logs/All/Compact/all_compact.json",//JsonFormatter"formatter":"Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact","rollingInterval":"Day","retainedFileCountLimit":7,"fileSizeLimitBytes":null,"buffered":true}}]}}},{//通常のテキスト形式で、Warning以上のログを出力するためのLogger"Name":"Logger","Args":{"configureLogger":{"Filter":[{"Name":"ByIncludingOnly","Args":{"expression":"(@Level = 'Error' or @Level = 'Fatal' or @Level = 'Warning')"}}],"WriteTo":[{"Name":"File","Args":{"path":"Logs/Error/Default/error.log","outputTemplate":"{Timestamp:yyyy-MM-dd HH:mm:ss} | [{Level:u3}] | {ThreadId:00}:{ThreadName} | {ProcessId:00}:{ProcessName} | {Message:lj} | {AssemblyName} | {AssemblyVersion} | {MachineName} | {EnvironmentUserName} | {MemoryUsage} B | {NewLine}{Exception}","rollingInterval":"Day","retainedFileCountLimit":7,"fileSizeLimitBytes":null,"buffered":true}}]}}},{//JSON形式で、Warning以上の構造化ログを出力するためのLogger"Name":"Logger","Args":{"configureLogger":{"Filter":[{"Name":"ByIncludingOnly","Args":{"expression":"(@Level = 'Error' or @Level = 'Fatal' or @Level = 'Warning')"}}],"WriteTo":[{"Name":"File","Args":{"path":"Logs/Error/Compact/error_compact.json","formatter":"Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact","rollingInterval":"Day","retainedFileCountLimit":7,"fileSizeLimitBytes":null,"buffered":true}}]}}}]}}

Viewing all articles
Browse latest Browse all 9301

Trending Articles