Azure函数应用程序日志未显示
Azure函数应用程序日志未显示
我对Azure相对陌生,刚刚完成了有关如何创建新的Azure函数的教程。函数在创建新的blob时触发,以下是默认的代码。\n
public static void Run(Stream myBlob, string name, TraceWriter log) { log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes"); }
\n根据教程所示,我应该能在代码下方的“日志”区域看到一些信息,但是没有显示任何内容。我已经寻找解决方案一段时间了,但似乎没有找到有用的信息。\n非常感谢任何帮助。
问题的原因:Azure function apps logs not showing的问题可能是由于未正确配置日志级别导致的。在某些语言的本地开发函数中,控制台可能无法正常显示日志。
解决方法:通过修改host.json文件中的配置来解决该问题。具体方法如下:
1. 进入函数应用设置(Function app settings)。
2. 在host.json文件中添加以下内容:
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"default": "Information",
"Host.Results": "Error",
"Function": "Trace",
"Host.Aggregator": "Trace"
}
}
请注意,这种解决方法只适用于JavaScript函数。对于其他语言的本地开发函数,控制台可能会有一些问题。
问题原因:Azure function apps的日志窗口有时会显示不完整,但日志实际上是写入了日志文件中。
解决方法:可以通过Kudu控制台访问这些日志。
具体步骤如下:
1. 在浏览器中输入https://[your-function-app].scm.azurewebsites.net/
2. 选择菜单中的Debug console > CMD
3. 在文件列表中进入LogFiles > Application > Functions > Function > [你的函数名称]
4. 在这里,你将看到一系列日志文件。
有些用户反映说,这种方法有时候有效,有时候无效。他们建议直接在文件夹中检查日志文件是可靠的。
另外,有用户表示在这个目录中只有当天的日志文件,不知道之前的日志文件是否移动到了其他目录。
对于使用.NET 6函数(运行时v4 dotnet-isolated)的用户来说,无法通过Kudu访问任何日志。这是因为共享的应用服务计划不支持Kudu(日志)文件访问。使用专用的应用服务计划可以让用户访问这些文件。
需要注意的是,有些用户表示即使通过上述方法访问日志,也不一定总能显示全部日志。