-2

リモートサーバーからファイルを読み取り、ローカルドライブにコピーするアプリケーションを開発しています。

私がファイルの読み取りと書き込みに使用しているコードは-

string saveTo1 = savePath + @"\" + filename[i];
                byte[] buffer = new byte[32768];
                using (Stream input = getResponse.GetResponseStream())
                {
                    using (FileStream output = new FileStream(saveTo1, FileMode.OpenOrCreate))
                    {
                        int bytesRead;

                        while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            output.Write(buffer, 0, bytesRead);
                        }
                        output.Close();
                    }
                }

ファイルコピーの詳細を追跡し、ファイルのコピー中にエラーが発生した場合に記録するログファイルを作成するにはどうすればよいですか?

前もって感謝します :)

4

4 に答える 4

1

さまざまな方法でログインできます。

  • EventLogger(すでに提案されているように)
  • カスタムファイルログ(すでに回答済み)
  • ログエンジン: log4netをお勧めします。それは非常に強力で高度にカスタマイズ可能です。

とにかく、私はこのようにコードを形作ります。ここで、MyLogManagerは前のソリューションの1つを実装します。

string saveTo1 = savePath + @"\" + filename[i];
byte[] buffer = new byte[32768];
try
{
            using (Stream input = getResponse.GetResponseStream())
            {
                using (FileStream output = new FileStream(saveTo1, FileMode.OpenOrCreate))
                {
                    int bytesRead;

                    while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        output.Write(buffer, 0, bytesRead);
                    }
                    output.Close();
                }
            }
    //logging good news and info
    MyLogManager("Good news", FileDetails);
}
catch(Exception ex)
{
    //logging bad news and exceptions info
    MyLogManager("Bad news", ExceptionDetails);
}
于 2012-07-02T09:24:16.283 に答える
0

あなたが望んでいるのは単純なログです。あなたはそれをより便利にすることができます。

ここをチェックしてください:

.NETロギングツールとライブラリ

于 2012-07-02T09:22:21.167 に答える
0

はい、それは完全に可能です。system.ioファイル操作を使用してファイルを作成するだけで、コピーされたファイルごとにログファイルを開いて行を追加します。例外がある場合は、それをスローしてアプリケーションを壊すのではなく、例外の詳細をログファイルにコピーするだけです。

私はこのアプローチを使用したいと思います。あなたが望むことを正確に実行するように調整できるからです。

于 2012-07-02T09:16:01.803 に答える
0

ネット上には非常に多くのロギングフレームワークがあります。NLogをお勧めします。ダウンロードして、urProjectに含めます。次の方法で実行できます。

try
{
        //Write your code here
        //OnSuccess : NLogger.Debug("file copied")

}
catch(Exception)
{
   NLogger.Error("Exception Details");
}

アーカイブ、ファイルハンドルなどを処理するNLogを使用する利点があります。

于 2012-07-02T09:19:58.140 に答える