it技術:dotnet:ログ出力
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:dotnet:ログ出力 [2017/11/10 11:48] – yajuadmin | it技術:dotnet:ログ出力 [2022/09/30 11:10] – [ログが途中で止まる現象] yajuadmin | ||
---|---|---|---|
行 10: | 行 10: | ||
メニューのツール > Nugetパッケージ マネージャー > | メニューのツール > Nugetパッケージ マネージャー > | ||
- | ==== 設定 ==== | + | ==== Winフォームでの設定 ==== |
=== AssemblyInfo === | === AssemblyInfo === | ||
AssemblyInfo.vbに下記の設定をしないと、ログが出力されてこない。 | AssemblyInfo.vbに下記の設定をしないと、ログが出力されてこない。 | ||
行 16: | 行 16: | ||
' | ' | ||
< | < | ||
+ | |||
' | ' | ||
- | '< | + | < |
</ | </ | ||
行 24: | 行 25: | ||
// | // | ||
[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: | 行 46: | ||
「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: | 行 103: | ||
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== 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: | 行 191: | ||
_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:// | ||
+ | |||
+ | ==== 参照 ==== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
===== NLog ===== | ===== NLog ===== | ||
行 123: | 行 244: | ||
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
- | * [[https:// | + | |
===== その他 ===== | ===== その他 ===== |
it技術/dotnet/ログ出力.txt · 最終更新: 2023/01/24 09:46 by yajuadmin