use*_*567 2 c# console logging azure azure-functions
我有一个 Azure 函数,其中包含以下代码行:
Console.WriteLine("Name: " + list.Count());
Run Code Online (Sandbox Code Playgroud)
此行有时会引发此异常:
句柄无效。
在 Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor
+d__26.MoveNext (Microsoft. Azure.WebJobs.Host,版本=3.0.34.0,文化=中性,PublicKeyToken=31bf3856ad364e35:C:\项目\ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Host \ Executors \ FunctionExecutor.cs:352 )
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib,版本=4.0.0.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e)在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib,版本) =4.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Private.CoreLib,版本=4.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e)在System.Runtime.CompilerServices Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor+d__18.MoveNext (Microsoft.Azure.WebJobs.主机,版本=3.0.34.0,文化=中性,PublicKeyToken=31bf3856ad364e35:C:\项目\ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Host \ Executors \ FunctionExecutor.cs:108)内部异常系统.IO.IOException 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 处理:在 System.ConsolePal+WindowsConsoleStream.Write(System.Console,版本=4.1.2.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a)在 System.IO.StreamWriter。刷新(System.Private.CoreLib,版本=4.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e)在System.IO.StreamWriter.WriteLine(System.Private.CoreLib,版本=4.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e) )在System.IO.TextWriter + SyncTextWriter.WriteLine(System.Private.CoreLib,版本= 4.0.0.0,文化=中性,PublicKeyToken = 7cec85d7bea7798e)在System.Console.WriteLine(System.Console,版本= 4.1.2.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a)
我们应该忽略这一点还是不要在 Azure 函数中使用控制台类?
当控制台窗口已关闭,或者控制台输出已重定向到文件或其他流时,会发生这种情况。
在 azure 函数中,不应使用Console.WriteLine. 相反,您应该使用ILogger 写入日志。您可以编写类似的日志log.LogInformation("Name: " + list.Count());,这会将输出写入Azure Functions运行时日志。您还可以在 Azure 门户中查看日志。
编辑:正如@Fildor在评论中建议的那样,你可以使用log.LogInformation("Name: {count}", list.Count());
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |