60

我正在测试 Azure Webjobs。我编写了一个控制台应用程序,它轮询 SQL 数据库中的新工作并对其进行处理。我没有使用 WebJobs SDK,因为它只支持 Azure 存储。

我上传了作业,它运行了,然后它失败了,出现了一个异常,说它无法连接到 SQL 数据库实例。我想知道正在使用什么连接字符串;是否从 Azure 网站获取连接字符串。日志给了我这个:

[03/14/2014 22:24:25 > 512206: SYS INFO] Status changed to Running
[03/14/2014 22:24:40 > 512206: ERR ] 
[03/14/2014 22:24:40 > 512206: ERR ] Unhandled Exception: System.AggregateException: One or more errors occurred. ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

我想将数据写入这些日志(例如正在使用的连接字符串是什么)。我试过 Console.WriteLine、Debug.WriteLine、Console.Error.WriteLine。它们都没有出现在我的 WebJob 日志中。

显然,我可以通过使用显示我想要的消息文本引发异常来获取数据,但必须有更好的方法!如何将 SYS INFO 行和 ERR 行写入日志?

4

2 回答 2

74

关于日志:

对于连续的 WebJobs - Console.Out 和 Console.Error 被路由到“应用程序日志”,它们将显示为文件、blob 或表存储,具体取决于您对应用程序日志的配置(类似于您的网站)。

此外,每次调用的前 100 行也将转到 WebJob 日志文件(以减轻 WebJob 在启动时失败时的调试痛苦),可使用 Azure 门户访问(但也保存在您站点的文件系统中的 data/jobs/continuous/jobName )。

对于触发/计划的 WebJobs - Console.Out/Console.Error 被路由到 WebJobs 特定的运行日志文件,也可以使用 Azure 门户访问并存储在 data/jobs/triggered/jobName/runId 中。

Console.Out 被视为(标记)为 INFO,Console.Error 被视为 ERROR。

关于连接字符串:

您可以使用 ConfigurationManager 类访问您的连接字符串,就像在您的网站中一样,对于不是用 .NET 编写的 WebJobs,您可以找到这些连接字符串(和应用程序设置)作为环境变量(与您的网站相同)。

于 2014-03-15T06:26:44.303 回答
7

我能够让 Console.WriteLine() 在我的网络作业日志中留下消息。以下控制台运行并留下日志消息。

class Program
{
    static void Main(string[] args)
    {
        while (true)
        {
            DoStuff();
            Thread.Sleep(10000);
        }
    }

    public static void DoStuff()
    {
        Console.WriteLine("do stuff");
    }
}

这是我的日志文件显示的内容:

[03/15/2014 04:05:28 > cf6d00: SYS INFO] Run script 'HelloWebJobConsoleApplication.exe' with script host - 'WindowsScriptHost'
[03/15/2014 04:05:28 > cf6d00: SYS INFO] Status changed to Running
[03/15/2014 04:05:28 > cf6d00: INFO] do stuff
[03/15/2014 04:05:38 > cf6d00: INFO] do stuff
[03/15/2014 04:05:48 > cf6d00: INFO] do stuff
[03/15/2014 04:05:58 > cf6d00: INFO] do stuff
于 2014-03-15T04:13:54.857 回答