Azure Function N层未记录到App Insights



我有一个azure功能应用程序(v4),这是记录到应用程序的见解。

我的函数应用程序是n层架构,所以它包含一个函数应用程序项目,域和数据层。

域和数据项目是。net 6类库。

日志似乎与功能应用程序项目工作良好。在Azure Portal的Configuration选项卡中有工具键设置。我没有在startup.cs文件中设置任何应用程序见解。

但是类库的日志记录不起作用。类库类在构造函数中注入了ILogger来记录信息/错误。日志工作是否需要任何特殊的设置?

从类库Azure函数项目中使用日志记录的解决方案之一是:

步骤1:在类库项目中添加这个包引用Microsoft.Extensions.Logging.Abstractions*。

步骤2添加一个参数到你的类构造函数接受和ILoggerILogger<YourClass>(如果你打算使用DI)。将记录器存储在一个字段中,并在需要时使用它。

public class MyClass {
private readonly ILogger _logger;
public MyClass(ILogger logger) =>
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
public void MyMethod(string name) {
_logger.LogInformation("Hello {Person}", name);
}
}

步骤3:将记录器传递给构造函数:

FunctionName("clFunction")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequestMessage req, ILogger log) {
log.LogInformation("HTTP trigger function start");
var class1 = new MyClass(log);
class1.MyMethod("krishazure");
}

有关更多信息,请参阅此MSFT文档。

您需要在host.json中添加loglevel

{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true
}
},
"logLevel": {
"Yournamespace**": "Information"
}
}  
}

最新更新