Azure WebJobs: Can't find Trace logging Azure WebJobs:找不到Trace日志记录
Azure WebJobs: Can't find Trace logging Azure WebJobs:找不到Trace日志记录
我按照这个微软网页上的指示,为Azure WebJob设置了日志记录,但是我的日志中没有出现任何消息。
在我的WebJob中,我使用下面的代码写入日志消息:
Trace.TraceInformation("blah blah blah");
在配置文件的应用程序诊断部分,我已经打开了以"Verbose"选项为参数的Blob存储日志记录。
日志文件已经被创建(尽管有时我必须等待几分钟,甚至在某些情况下直到第二天早上才能在Blob存储中看到日志),但是日志中不包含我的Trace
消息。
那么我应该如何将消息记录到这些日志文件中,或者Trace
消息被写入到哪里了呢?
下面是我配置的日志选项的截图:
并且,我配置的Blob存储绝对是我在查看的那个。
Azure WebJobs 提供了两种将输出发送到可在 WebJobs SDK 仪表板上看到的日志的机制:
1. Console 类的静态方法(例如 Console.WriteLine)。
2. 使用 TextWriter 对象,该对象作为 SDK 的一个或多个属性(例如 [NoAutomaticTrigger])装饰的方法的 “log” 参数提供。
这有效地解释了你遇到的问题:
1. Azure WebJobs 提供的日志记录机制(原生支持 Trace)与 Azure Web 应用程序中使用的日志记录机制无关(这个问题的先前回答解释了如何配置日志记录)。
2. 默认情况下不支持 Trace 机制,这就解释了为什么会出现 “Can't find Trace logging” 的问题。
但是,在这两种情况下,都很容易添加一个 TraceListener 来捕获 Trace 语句的输出。这个答案解释了如何为 Console 添加 TraceListener。而对于 log 对象,可以添加一个 TextWriterTraceListener。这对我来说效果如预期。
“Trace is not supported as a default mechanism” --> 不正确,它是受支持的。
好吧,假设它作为默认机制是“正确和受支持的”。你能帮助我和 OP 提供一个能证明这个说法的答案吗?
问题:Azure WebJobs:找不到Trace日志记录
原因:
1. 未安装Azure Website Log Browser扩展。
2. WebJob的日志尚未显示。
解决方法:
1. 安装Azure Website Log Browser扩展。
2. 在msdn论坛上发布一个新帖子,寻求帮助。
问题原因:在Web Job日志中指定存储帐户时,需要在“CONFIGURE”选项卡的连接字符串部分添加连接字符串,连接字符串的名称必须为AzureWebJobsDashboard。但是,根据提供的日志内容,连接字符串的配置似乎不正确。
解决方法:根据提供的连接字符串示例,需要正确配置连接字符串。连接字符串应该如下所示:
- 名称:AzureWebJobsDashboard
- 值:DefaultEndpointsProtocol=https;AccountName="";AccountKey=""
- 类型:Custom
此外,还可以在Azure门户中查看日志。打开Web应用程序,选择“WEBJOBS”选项卡,然后点击Web Job的URL,它将显示最新的运行日志。点击“Toggle”按钮,可以查看运行的详细信息,包括应用程序使用以下语句写入的自定义消息:
Console.WriteLine("Error While Doing Something ...");
如果您已经修复了错误但仍然显示出错信息,则可能是由于旧的实例仍在运行。可以尝试删除该任务,并创建一个新的任务,使用新的名称。
另外,根据对代码的检查,需要使用`Console.Out.WriteLine`代替`Trace.TraceInformation`来写入日志信息。可以将代码中的`Trace.TraceInformation`替换为`Console.Out.WriteLine`。
请注意,连接字符串的配置是针对WebJobs SDK特定日志的,与Trace.*跟踪日志无关。
要将Trace日志写入Web Job日志,需要正确配置连接字符串,并使用`Console.Out.WriteLine`语句来写入日志信息。