-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 实现了以前的解决方案之一:

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

网上有很多可用的日志记录框架。我会建议NLog。下载并将其包含在您的项目中。您可以执行以下方法,

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

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

使用 NLog 处理存档、文件句柄等有很多优点。

于 2012-07-02T09:19:58.140 回答
0

是的,这是完全可能的。只需使用 system.io 文件操作创建一个文件,然后为每个复制的文件打开日志文件并添加一行。如果您有异常,那么您可以简单地将异常详细信息复制到日志文件中,而不是抛出它并破坏应用程序。

我更喜欢使用这种方法,因为您可以对其进行定制以完全满足您的需求。

于 2012-07-02T09:16:01.803 回答
0

你想要的是一个简单的日志。你可以让它更有用。

在这里检查:

.NET 日志工具和库

于 2012-07-02T09:22:21.167 回答