ユーザ用ツール

サイト用ツール


it技術:dotnet:ログ出力

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
it技術:dotnet:ログ出力 [2018/08/21 11:53] – [ASP.NETでの設定] yajuadminit技術:dotnet:ログ出力 [2023/01/24 09:46] (現在) – [ログローテーション連番] yajuadmin
行 5: 行 5:
   * [[http://www.atmarkit.co.jp/ait/articles/0712/25/news121.html|オープンソースのロギング・サービス「log4net」を使う ]]   * [[http://www.atmarkit.co.jp/ait/articles/0712/25/news121.html|オープンソースのロギング・サービス「log4net」を使う ]]
   * [[http://sumurai993.hatenablog.com/entry/2015/07/23/072345|いまさら聞けない「log4net」の使い方]]   * [[http://sumurai993.hatenablog.com/entry/2015/07/23/072345|いまさら聞けない「log4net」の使い方]]
 +  * [[https://ameblo.jp/yukkov/entry-10473035979.html|log4net.dll 設定ファイル]]
   * [[http://kitunechan.hatenablog.jp/entry/2016/05/13/111711|コードだけでlog4netを使う]]   * [[http://kitunechan.hatenablog.jp/entry/2016/05/13/111711|コードだけでlog4netを使う]]
 +  * [[https://qiita.com/n-shima/items/31a98d182f0519249fd0|Log4Netは開発休止になったのか?]]
  
 ==== 導入 ==== ==== 導入 ====
行 27: 行 29:
  
 //外部ファイルにして使用する場合 //外部ファイルにして使用する場合
-[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.xml", Watch = True)]+[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.xml", Watch = true)]
 </code> </code>
  
行 193: 行 195:
  
 [[https://garafu.blogspot.com/2014/05/log4net_26.html|log4net で 出力先 ファイル名 を 動的に 取得、設定 する 方法]] [[https://garafu.blogspot.com/2014/05/log4net_26.html|log4net で 出力先 ファイル名 を 動的に 取得、設定 する 方法]]
 +
 +==== ログが途中で止まる現象 ====
 +とあるシステムで発生している。最後まで出力されたり途中で止まっていて不安定。
 +
 +>Log4Net は、何か問題が発生してアペンダーに書き込めない場合、黙って失敗します。
 +>これは実際には良いことです。ロギングに少し失敗しても、正常なシステムがダウンすることはないからです。
 +>最善の策は、log4net の内部ログを有効にして診断を行い、(できれば) 失敗の原因を突き止めることです。
 +
 +  * https://stackoverflow.com/questions/2263301/log4net-randomly-stops-logging
 +  * https://stackoverflow.com/questions/40077917/log4net-internal-debug-timestamp
 +  * [[https://pgroene.wordpress.com/2017/07/03/log4net-troubleshooting/|Log4Net troubleshooting, debug your configuration]]
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8" ?>
 +<configuration>
 +  <appSettings>
 +    <add key="log4net.Internal.Debug" value="true"/>
 +  </appSettings>
 +</configuration>
 +</code>
 +これにより送信される内部ログがオンになる。System.Diagnostics.Traceため、以下を追加できます。
 +
 +<code xml>
 +<configuration>
 +  ...
 +  <system.diagnostics>
 +    <trace autoflush="true">
 +      <listeners>
 +        <add name="textWriterTraceListener" 
 +             type="System.Diagnostics.TextWriterTraceListener" 
 +             initializeData="C:\temp\log4net.txt" />
 +      </listeners>
 +    </trace>
 +  </system.diagnostics>
 +  ...
 +</configuration>
 +</code>
 +
 +出力されたログにはタイムスタンプが付いていない。[[https://github.com/apache/logging-log4net/pull/49|プルリクエスト]]があったが、放棄されたようだ。
 +
 +==== ログローテーション連番 ====
 +CountDirection:ローテの連番をどの様に振るか。
 +  * 0未満 : 常に同じ連番が使われる。デフォルト値(-1)。
 +  * 0以上 : 新たな連番が使われる。
 +
 +xxxx.log.1 というように拡張子の後ろに連番が付く。ファイル名を日パターンにしても同様。
 +
 +[[https://shima111.hatenadiary.org/entry/20060627/p1|Log4net(6) RollingFileAppender 意味不明パラメータ:CountDirection]]
 +==== 参照 ====
 +  * [[https://devlights.hatenablog.com/entry/20110216/p2|Log4Netで複数プロセスから同じログファイルに書き込み (log4net.config, lockingModel, FileAppender+MinimalLock, Appender)]]
 +  * [[https://www.kinakomotitti.net/entry/2017/10/31/231607|log4net × Lock Model × Mutex]]
 +  * [[http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28121&forum=7|log4net 使用時にログファイルがロックされ読み込みできない]]
 +  * [[http://www.atmarkit.co.jp/ait/articles/0802/14/news138.html|オープン中のファイルにアクセスするには?[C#、VB]]]
  
 ===== NLog ===== ===== NLog =====
行 200: 行 255:
   * [[http://ohke.hateblo.jp/entry/2017/02/24/221702|NET Coreアプリケーションでログ出力にはNLogが良いみたいですね]]   * [[http://ohke.hateblo.jp/entry/2017/02/24/221702|NET Coreアプリケーションでログ出力にはNLogが良いみたいですね]]
   * [[https://www.infoq.com/jp/news/2015/07/nlog4|最新版の NLog は例外ログを改善し、JSON/Zip をサポートした]]   * [[https://www.infoq.com/jp/news/2015/07/nlog4|最新版の NLog は例外ログを改善し、JSON/Zip をサポートした]]
 +  * [[https://techinfoofmicrosofttech.osscons.jp/index.php?NLog#d47c5b58|Apache log4netとの違い]]
  
 ===== その他 ===== ===== その他 =====
it技術/dotnet/ログ出力.1534820033.txt.gz · 最終更新: 2018/08/21 11:53 by yajuadmin