DOBON.NETプログラミング道掲示板

■34460 / 親記事)  app.config定義によるネットワークトレースログの世代管理
  
□投稿者/ あばば無人君 一般人(7回)-(2020/04/24(Fri) 15:30:48)
  • アイコン環境/言語:[Win7Pro、SQLServer2012、C#(.Net4.0)] 
    分類:[.NET] 

    C#のWinFormでFtpWebRequestクラスを使ったFTPアプリケーションを作成しています。
    以下リンクの記事を読み、.Net Frameworkの機能?で、System.NetやSystem.Net.Httpなどのクラスの関数をコールした際に
    ネットワークトレースログが出力できることを知り、app.configを以下の通り編集してみました。

    リンク
    https://docs.microsoft.com/ja-jp/dotnet/framework/network-programming/network-tracing

    編集したapp.configの内容
    <?xml version="1.0"?>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    <system.diagnostics>
    <sources>
    <source name="System.Net" tracemode="includehex" maxdatasize="1024">
    <listeners>
    <add name="System.Net"/>
    </listeners>
    </source>
    </sources>
    <switches>
    <add name="System.Net" value="Verbose"/>
    </switches>
    <sharedListeners>
    <add name="System.Net"
    type="System.Diagnostics.TextWriterTraceListener"
    initializeData="D:\\MyNetworkLog.trace"
    traceOutputOptions="ProcessId, DateTime"/>
    </sharedListeners>
    <trace autoflush="true"/>
    </system.diagnostics>
    </configuration>

    上記内容で想定通りDドライブの直下に「MyNetworkLog.trace」というネットワークトレースログが出力される様になったのですが、
    MyNetworkLog.traceのサイズがどんなに大きくなっても世代管理(リネームなど)されず追記されてしまうという問題点が出てきました。
    ※約20MBまで追記されることは確認済み

    私としてはファイルサイズが3MB程度になったら現在の「MyNetworkLog.trace」は「MyNetworkLog_1.trace」などにリネームし、
    新しく空の「MyNetworkLog.trace」が作られる、といった挙動を望んでいます。

    上記挙動となる様なapp.configの定義をご存知の方、いらっしゃいましたらお力添え頂きたいです。
    どうか宜しくお願い致します。
マルチポストを報告
違反を報告
引用返信 削除キー/
■34461 / ResNo.1)  Re[1]: app.config定義によるネットワークトレースログの世代管理
□投稿者/ 魔界の仮面弁士 大御所(1279回)-(2020/04/24(Fri) 19:28:49)
  • アイコンNo34460に返信(あばば無人君さんの記事)
    > MyNetworkLog.traceのサイズがどんなに大きくなっても世代管理(リネームなど)されず追記されてしまうという問題点が出てきました。

    世代管理が必要というのであれば、
    TextWriterTraceListener の代わりに
    EventLogTraceListener を登録しておくのは駄目ですか?
    https://docs.microsoft.com/ja-jp/dotnet/api/system.diagnostics.eventlogtracelistener?view=netframework-4.8

    あるいは、Microsoft.VisualBasic.Logging.FileLogTraceListener とか。
    日付別や週別のファイルとして記録できます。
    https://dobon.net/vb/dotnet/programing/myapplicationlog.html

    いずれでも要件を満たせないのなら、世代管理されるような
    TraceListener を自作してしまうとか…。
    https://qiita.com/tomochan154/items/a666d00339b497a62f17
違反を報告
引用返信 削除キー/
■34463 / ResNo.2)  Re[2]: app.config定義によるネットワークトレースログの世代管理
□投稿者/ あばば無人君 一般人(8回)-(2020/04/27(Mon) 11:18:42)
  • アイコン返信が遅れてしまい大変失礼致しました。

    ご回答、ありがとうございます。
    上げて頂いた案の中で3つ目の自作が
    一番融通が利きそうですね。

    自作ログ出力案をチームで検討します。
    本当にありがとうございました。

解決み!
違反を報告
引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/


- Child Tree -