gpt4 book ai didi

c# - 使用 Azure Function V3,如何将现有的 Ilogger 注入(inject)到新的类文件中?

转载 作者:行者123 更新时间:2023-12-05 04:56:09 25 4
gpt4 key购买 nike

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

最佳答案

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

您可以像这样在其他服务/帮助程序类中使用 ILogger 和依赖注入(inject)。

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;
}
}
}

关于c# - 使用 Azure Function V3,如何将现有的 Ilogger 注入(inject)到新的类文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65029277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com