Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Azure函数注入NLog_C#_.net_.net Core_Dependency Injection_Nlog - Fatal编程技术网

C# 如何使用Azure函数注入NLog

C# 如何使用Azure函数注入NLog,c#,.net,.net-core,dependency-injection,nlog,C#,.net,.net Core,Dependency Injection,Nlog,我有以下代码注入NLog记录器: // startup.cs [assembly: FunctionsStartup(typeof(MyApp.FunctionApp.Startup))] namespace MyApp.FunctionApp { public class Startup : FunctionsStartup { public override void Configure(IFunctionsHostBuilder builder) {

我有以下代码注入NLog记录器:

// startup.cs
[assembly: FunctionsStartup(typeof(MyApp.FunctionApp.Startup))]
namespace MyApp.FunctionApp {
    public class Startup : FunctionsStartup {
        public override void Configure(IFunctionsHostBuilder builder) {
            var nLogConfigPath = GetLogPath("nlog.config");
            
            builder.Services.AddLogging(loggingBuilder =>
            {
                var nLogOptions = new NLogAspNetCoreOptions
                {
                    RegisterHttpContextAccessor = true,
                    IgnoreEmptyEventId = true,
                    IncludeScopes = true,
                    ShutdownOnDispose = true
                };

                var logFactory = NLogBuilder.ConfigureNLog(nLogConfigPath);
                logFactory.AutoShutdown = false;

                var nLogConfig = logFactory.Configuration;
                loggingBuilder.AddNLog(nLogConfig, nLogOptions);
            });
        }
    }
}

// actual function code
public class ActualFunctionClass {
    public ActualFunctionClass (ILogger<ActualFunctionClass> logger) {
        logger.LogInformation("log stuff");
    }
}
我认为这是错误的:

<logger name="locations-dataload-local*" ...
并添加到布局
${logger}
,例如

layout="${logger}|${commonLayout}" 

名称过滤器将与记录器名称
${logger)
。因此,如果记录器名称为
YourNamespace.ActualFunctionClass
,则
locations dataload local*
将与之不匹配。

什么不起作用?@Julian ActualFunctionClass构造函数中的记录器没有记录任何内容。我猜它没有被告知要登录的目标。但我不确定如何指定请在DI设置中设置目标。请共享您的nlog配置。问题可能在于.net core/asp.net core版本是什么?另请参阅:
 <logger name="*" minlevel="Trace" writeTo="locations-dataload-ai,locations-dataload-file" />
layout="${logger}|${commonLayout}"