C# NLog-根据当前请求呈现用户名

C# NLog-根据当前请求呈现用户名,c#,asp.net-core,logging,asp.net-identity,nlog,C#,Asp.net Core,Logging,Asp.net Identity,Nlog,我根据文档设置NLog日志记录提供程序。我正在使用AspNetCore.Identity进行身份验证/授权,我发现通过在布局渲染器中包含${aspnet user Identity},我还可以记录请求者的用户名 问题是,用户名没有显示: 2020-06-12 18:08:04.4495|ERROR|API.Controllers.ReportController|Hi |url: https://localhost/api/v1/reports/6|action: GetReport|user:

我根据文档设置NLog日志记录提供程序。我正在使用AspNetCore.Identity进行身份验证/授权,我发现通过在布局渲染器中包含${aspnet user Identity},我还可以记录请求者的用户名

问题是,用户名没有显示:

2020-06-12 18:08:04.4495|ERROR|API.Controllers.ReportController|Hi |url: https://localhost/api/v1/reports/6|action: GetReport|user: 
我想要的是:

2020-06-12 18:08:04.4495|ERROR|API.Controllers.ReportController|Hi |url: https://localhost/api/v1/reports/6|action: GetReport|user: example@example.com
以下是我的配置:

nlog.config


Program.cs-CreateWebHostBuilder方法

公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
//附加其他JSON文件
.ConfigureAppConfiguration((hostingContext,config)=>
{
config.AddJsonFile(Path.Combine(Environment.CurrentDirectory,“wwwroot”,“Configurations”,“EventTypes.json”),可选:false,reloadOnChange:true);
config.AddJsonFile(Path.Combine(Environment.CurrentDirectory,“wwwroot”,“Notifications”,“NotificationLangTemplates.json”),可选:false,reloadOnChange:true;
})
.ConfigureLogging(日志=>
{
logging.ClearProviders();
})
.UseNLog()
.UseStartup();
示例控制器-当我尝试记录任何内容时


    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    [Produces("application/json")]
    public class UserReportController : Controller
    {
        private readonly ILogger<UserReportController> logger;

        public UserReportController(ILogger<UserReportController> logger)
        {            
            this.logger = logger;
        }


        [HttpGet(ApiRoutes.UserReports.Get)]
        public async Task<IActionResult> GetReport(int reportId)
        {          
            logger.LogError("Log error");
            return Ok();
        }

    }



[授权(AuthenticationSchemes=JwtBearerDefaults.AuthenticationScheme)]
[产生(“应用程序/json”)]
公共类UserReportController:控制器
{
专用只读ILogger记录器;
公共用户报告控制器(ILogger记录器)
{            
this.logger=记录器;
}
[HttpGet(apirouts.UserReports.Get)]
公共异步任务GetReport(int reportId)
{          
logger.LogError(“日志错误”);
返回Ok();
}
}

这可能会对您有所帮助。看起来是个重复的问题。这可能对你有帮助。看起来是个重复的问题。
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
         WebHost.CreateDefaultBuilder(args)
             //attach additional JSON files
             .ConfigureAppConfiguration((hostingContext, config) =>
             {
                 config.AddJsonFile(Path.Combine(Environment.CurrentDirectory, "wwwroot", "Configurations", "EventTypes.json"), optional: false, reloadOnChange: true);
                 config.AddJsonFile(Path.Combine(Environment.CurrentDirectory, "wwwroot", "Notifications", "NotificationLangTemplates.json"), optional: false, reloadOnChange: true);
             })
            .ConfigureLogging(logging =>
            {
                logging.ClearProviders();
            })
            .UseNLog()
            .UseStartup<Startup>();

    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    [Produces("application/json")]
    public class UserReportController : Controller
    {
        private readonly ILogger<UserReportController> logger;

        public UserReportController(ILogger<UserReportController> logger)
        {            
            this.logger = logger;
        }


        [HttpGet(ApiRoutes.UserReports.Get)]
        public async Task<IActionResult> GetReport(int reportId)
        {          
            logger.LogError("Log error");
            return Ok();
        }

    }