使用Azure Function V3,如何将现有的Ilogger注入到新的类文件中



我使用VS2019创建了一个新的Azure函数V3 CORE 3.1。它使用一个基本的HTTPTrigger。我已经创建了一个新的类文件,并想将现有的Ilogger注入其中。如何实现这一点?我是新来的,所以任何帮助都将不胜感激。

我有一个函数,它将日志写入App Insights,我使用ILogger。

您可以在其他服务/帮助程序类中将ILogger与依赖项注入一起使用。

public interface IExampleClass
{
void ExampleMethod();
}
public class ExampleClass : IExampleClass
{
private readonly ILogger<ExampleClass> _logger;
public ExampleClass(ILogger<ExampleClass> logger)
{
_logger = logger;
}
public void ExampleMethod()
{
_logger.LogInformation("Example info log");
}
}

我启用了登录启动文件并注册DI。

class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddLogging();
builder.Services.AddTransient<ExampleClass, IExampleClass>();
}
}

它可以由主类调用。

public class ThisIsAnAzureFunction
{
private readonly IExampleClass _exampleClass;
public ThisIsAnAzureFunction(IExampleClass exampleClass)
{
_exampleClass = exampleClass;
}
[FunctionName("SomeAzureFunctionName")]
public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
{
try
{
//Try some stuff
}
catch (Exception exception)
{
//Log some stuff
log.LogError(exception);
throw;
}
}
}

最新更新