代码片段:
host.json
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
}
}
函数代码:
public class SBFuncTrigger
{
private readonly ILogger<Function1> _logger;
public Function1(ILogger<Function1> log)
{
_logger = log;
}
[FunctionName("SBFuncTrigger")]
public void Run([ServiceBusTrigger("sampletopic", "sbtopicsubscription", Connection = "ServiceBusConnStr")]string mySbMsg)
{
_logger.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
}
}
输出:
For detailed output, run func with --verbose flag.
Host lock lease acquired by instance ID '<Some_Id>'.
Executing 'SBFuncTrigger' (Reason='(null)', Id=
<Some_Id>)
Trigger Details: MessageId:
<Some_Id>, SequenceNumber: 8, DeliveryCount: 1, EnqueuedTimeUtc: , LockedUntilUtc: , SessionId: (null)
Executed 'Function1' (Succeeded, Id=
<Some_Id>, Duration=xxxms)
我没有在输出中收到消息:
C# ServiceBus topic trigger function processed message: {mySbMsg}
详细信息/实现:
最佳答案
您提供的服务总线触发器的函数声明中缺少 ILogger 类。
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
namespace KrishSBNet6FunctionApp
{
public class Function1
{
private readonly ILogger<Function1> _logger;
public Function1(ILogger<Function1> log)
{
_logger = log;
}
[FunctionName("Function1")]
public void Run([ServiceBusTrigger("messagetopic", "topicsubsn", Connection = "SBConnection")] string mySbMsg, ILogger _logger)
{
_logger.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
}
}
}
关于azure - 使用 Visual Studio 2022 提供的默认代码,日志记录在 .NET 6 Azure Functions 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75830388/