查看工作者角色跟踪行和日志文件

Tal*_*ari 1 c# cloud logging azure azure-worker-roles

我有.NetWorker角色(Azure),我的应用程序以这种形式写入本地日志文件:

StreamWriter sw = File.AppendText("aaa.log");
sw.WriteLine("Error occured"");
sw.Close();
Run Code Online (Sandbox Code Playgroud)

我怎么能看到这个日志文件?

Avk*_*han 5

以下是您提出的上述问题的直接答案:

  • 如果您只是从模板创建一个空白的Windows Azure辅助角色,并在OnStart()函数中完全添加上面的代码,然后在Compute Emulator中测试您的应用程序:

    public override bool OnStart()
    {
        // Set the maximum number of concurrent connections 
        ServicePointManager.DefaultConnectionLimit = 12;
        StreamWriter sw = File.AppendText("aaa.log");
        sw.WriteLine("Error occured");
        sw.Close();
    
        return base.OnStart();
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 您将看到在下面的位置创建了aaa.log文件,您可以匹配文件夹详细信息,因为我的测试应用程序名称是"TestWorkerRole":

    _your_drive_and_Folder_path\TestWorkerRole\TestWorkerRole\CSX \调试\角色\ WorkerRole1 \为approot\aaa.log

  • 我也可以验证它还有文本"Error occurred",因此代码按照预期执行.

  • 当您将完全相同的应用程序部署到Windows Azure时,代码将运行,您将在以下位置找到相同的aaa.log文件:

    E:\为approot\BIN

由于以下主要原因,以上方法是正确的,不是全部,您不能使用它

  • Windows Azure VM不会保留,因此您创建的任何内容以后都可能无法使用,因此您必须有办法移动数据
  • Windows Azure提供了一种在应用程序中添加诊断的特定方法,其中所有日志都在Windows Azure VM中的特定固定位置创建,然后根据您的设置(Azure存储和传输日志的时间)从Azure传输这些日志VM到您的Windows Azure存储.
  • 您必须使用Windows Azure诊断方法添加以下链接中描述的任何自定义日志方法:

http://msdn.microsoft.com/en-us/library/hh180875.aspx