it技術:dotnet:ログ出力
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| it技術:dotnet:ログ出力 [2017/11/10 11:49] – [NLog] yajuadmin | it技術:dotnet:ログ出力 [2023/01/24 09:46] (現在) – [ログローテーション連番] yajuadmin | ||
|---|---|---|---|
| 行 5: | 行 5: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[https:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[https:// | ||
| ==== 導入 ==== | ==== 導入 ==== | ||
| メニューのツール > Nugetパッケージ マネージャー > | メニューのツール > Nugetパッケージ マネージャー > | ||
| - | ==== 設定 ==== | + | ==== Winフォームでの設定 ==== |
| === AssemblyInfo === | === AssemblyInfo === | ||
| AssemblyInfo.vbに下記の設定をしないと、ログが出力されてこない。 | AssemblyInfo.vbに下記の設定をしないと、ログが出力されてこない。 | ||
| 行 16: | 行 18: | ||
| ' | ' | ||
| < | < | ||
| + | |||
| ' | ' | ||
| - | '< | + | < |
| </ | </ | ||
| 行 24: | 行 27: | ||
| // | // | ||
| [assembly: log4net.Config.XmlConfigurator(Watch = true)] | [assembly: log4net.Config.XmlConfigurator(Watch = true)] | ||
| + | |||
| // | // | ||
| - | [assembly: log4net.Config.XmlConfigurator(ConfigFile = " | + | [assembly: log4net.Config.XmlConfigurator(ConfigFile = " |
| </ | </ | ||
| + | |||
| + | [[https:// | ||
| + | log4net.dllを参照後、App.configにlog4netの設定を記述してデバッグログ出力しようとしたら「構成システムを初期化できませんでした。」と例外エラーが発生しました。 | ||
| === App.config === | === App.config === | ||
| - | App.configのconfigSectionsタグ内に下記の定義を行う。 | + | App.configのconfigSectionsタグ内に下記の定義を行う。\\ |
| + | ※AssemblyInfoとセットなので、これをしないと「構成システムを初期化できませんでした。」の例外エラーとなる。 | ||
| <code xml App.config> | <code xml App.config> | ||
| < | < | ||
| 行 39: | 行 48: | ||
| 「Test」というアプリケーション名にした場合\\ | 「Test」というアプリケーション名にした場合\\ | ||
| 下記の設定内容では、Test.exe直下にlogフォルダが作成され、Test_yyyyMMdd.logのファイルが出力される。\\ | 下記の設定内容では、Test.exe直下にlogフォルダが作成され、Test_yyyyMMdd.logのファイルが出力される。\\ | ||
| + | |||
| + | アプリケーション名が不要の場合、下記の設定で実行ファイルのフォルダ直下に自動でlogフォルダに、yyyyMMdd.logのファイルが出力される。 | ||
| + | <code xml> | ||
| + | <!-- 作成するログファイル --> | ||
| + | <param name=" | ||
| + | < | ||
| + | </ | ||
| + | |||
| 【ログの中身】\\ | 【ログの中身】\\ | ||
| 2016/09/23 17:25:50 [INFO ] テスト | 2016/09/23 17:25:50 [INFO ] テスト | ||
| 行 88: | 行 105: | ||
| </ | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== ASP.NETでの設定 ==== | ||
| + | AssemblyInfoの代わりに、Global.aspx に定義を行う。\\ | ||
| + | ※但し、ログ設定を別ファイルにする場合は、AssemblyInfo に記述する。\\ | ||
| + | App.configの代わりにWeb.Configに設定を追加する。 | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | 指定したlogsフォルダはWeb.configと同じ階層に作成される。 | ||
| + | |||
| + | === Global.aspx === | ||
| + | <code csharp Global.aspx.cs> | ||
| + | protected void Application_Start() | ||
| + | { | ||
| + | log4net.Config.XmlConfigurator.Configure(); | ||
| + | AreaRegistration.RegisterAllAreas(); | ||
| + | RouteConfig.RegisterRoutes(RouteTable.Routes); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | === Web.Config === | ||
| + | <code xml Web.Confog> | ||
| + | < | ||
| + | <!-- log4netセクションのハンドラ設定 --> | ||
| + | <section name=" | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | <!-- ===================================================================== --> | ||
| + | < | ||
| + | <!-- ===================================================================== --> | ||
| + | < | ||
| + | <!-- ログのレベルを指定 --> | ||
| + | <!-- ALL > DEBUG > INFO > WARN > ERROR > FATAL --> | ||
| + | <level value=" | ||
| + | <!-- どのログ出力先を使用するか --> | ||
| + | < | ||
| + | </ | ||
| + | <!-- ===================================================================== --> | ||
| + | < | ||
| + | <!-- ===================================================================== --> | ||
| + | <!-- ▼ファイル出力用[RollingFileAppender](日付や時刻の制約に基づいたログファイルの生成) --> | ||
| + | < | ||
| + | <param name=" | ||
| + | <!-- ファイル名 --> | ||
| + | <param name=" | ||
| + | <!-- 追記する場合true/ | ||
| + | <param name=" | ||
| + | <!-- 日付や時刻の制約によるログファイルの切替 --> | ||
| + | <param name=" | ||
| + | <!-- 上から「毎月、毎週、毎日、半日、毎時、毎分」の設定(デフォルトは毎時) --> | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <layout type=" | ||
| + | <param name=" | ||
| + | </ | ||
| + | </ | ||
| </ | </ | ||
| </ | </ | ||
| 行 117: | 行 193: | ||
| _logger.Fatal(" | _logger.Fatal(" | ||
| </ | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== ログが途中で止まる現象 ==== | ||
| + | とあるシステムで発生している。最後まで出力されたり途中で止まっていて不安定。 | ||
| + | |||
| + | >Log4Net は、何か問題が発生してアペンダーに書き込めない場合、黙って失敗します。 | ||
| + | > | ||
| + | > | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | * [[https:// | ||
| + | |||
| + | <code xml> | ||
| + | <?xml version=" | ||
| + | < | ||
| + | < | ||
| + | <add key=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | これにより送信される内部ログがオンになる。System.Diagnostics.Traceため、以下を追加できます。 | ||
| + | |||
| + | <code xml> | ||
| + | < | ||
| + | ... | ||
| + | < | ||
| + | <trace autoflush=" | ||
| + | < | ||
| + | <add name=" | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | ... | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 出力されたログにはタイムスタンプが付いていない。[[https:// | ||
| + | |||
| + | ==== ログローテーション連番 ==== | ||
| + | CountDirection:ローテの連番をどの様に振るか。 | ||
| + | * 0未満 : 常に同じ連番が使われる。デフォルト値(-1)。 | ||
| + | * 0以上 : 新たな連番が使われる。 | ||
| + | |||
| + | xxxx.log.1 というように拡張子の後ろに連番が付く。ファイル名を日パターンにしても同様。 | ||
| + | |||
| + | [[https:// | ||
| + | ==== 参照 ==== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| ===== NLog ===== | ===== NLog ===== | ||
| 行 124: | 行 255: | ||
| * [[http:// | * [[http:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| ===== その他 ===== | ===== その他 ===== | ||
it技術/dotnet/ログ出力.1510282180.txt.gz · 最終更新: 2017/11/10 11:49 by yajuadmin
