none
C# ログ出力 RRS feed

  • 質問

  • VISUAL STUDIO2010のC#で開発をしています。

    下記コードを実行した際に、System.Threading.Thread.Sleep(3000);で処理を止めないと

     hai_sub.Logfile_write_close(sLogpath, "エラー:", sErr_Msg);でログにエラーが書き込みされません。

    エラーの内容はDirectory.CreateDirectory(arCopyfile[1]);でフォルダが作成できなかった場合に発生するエラーです。

    処理を止めずに正常にエラーを出力する方法はありませんでしょうか。

    try
    {
        Directory.CreateDirectory(arCopyfile[1]);
        File.Copy(sCopy元_Folder + @"\" + arCopyfile[0], arCopyfile[1] + @"\" + arCopyfile[2]);
    }
    catch (Exception ed)
    {
        sErr_Msg = ed.Message;
        //sRtn_del = hai_sub.Sub_Delete(sDrive_Map, ref iRtn_del);
        if (sMachine == "2")
        {
            hai_sub.Logfile_write_close(sLogpath, "エラー:", sErr_Msg);
        }
        //Environment.Exit(0);
    }

    2013年8月8日 5:16

回答

  • 「書き込みされません」とは具体的にはどうなるのでしょうか? エラー処理中に更に別のエラーが発生していたりしませんか?
    • 回答としてマーク 星 睦美 2013年8月26日 5:02
    2013年8月8日 5:39
  • 何のログライブラリを使っているのか、自作なのかわかりませんが、おそらくバッファリングされているのでは?
    バッファをフラッシュして実際に書き込んでもらうような仕組みを作る・呼ぶなどを考えてみてください。

    • 回答としてマーク 星 睦美 2013年8月26日 5:03
    2013年8月8日 14:03
    モデレータ
  • System.Threading.Thread.Sleep(3000);は、どこで実行されているのでしょうか? ログファイル出力ですから、例外発生をログに出力する前に、どこか他でログファイルを操作されていませんか? それが影響しているのかもしれません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 星 睦美 2013年8月26日 5:03
    2013年8月9日 0:24
    モデレータ

すべての返信

  • 「書き込みされません」とは具体的にはどうなるのでしょうか? エラー処理中に更に別のエラーが発生していたりしませんか?
    • 回答としてマーク 星 睦美 2013年8月26日 5:02
    2013年8月8日 5:39
  • 何のログライブラリを使っているのか、自作なのかわかりませんが、おそらくバッファリングされているのでは?
    バッファをフラッシュして実際に書き込んでもらうような仕組みを作る・呼ぶなどを考えてみてください。

    • 回答としてマーク 星 睦美 2013年8月26日 5:03
    2013年8月8日 14:03
    モデレータ
  • System.Threading.Thread.Sleep(3000);は、どこで実行されているのでしょうか? ログファイル出力ですから、例外発生をログに出力する前に、どこか他でログファイルを操作されていませんか? それが影響しているのかもしれません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 星 睦美 2013年8月26日 5:03
    2013年8月9日 0:24
    モデレータ
  • フォーラム オペレーターの星 睦美です。

    回答者からの返信に今回は私のほうでスレッドに[回答としてマーク] しています。

    もし回答の内容にさらに質問がありましたら、遠慮なく [回答としてのマークの解除] をして返信できます。

    それでは、これからもMSDN フォーラムをお役立てください。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2013年8月26日 5:08