Obecnie nie jest obsługiwany, ale można go wstrzyknąć w NLog tak:
using System;
using System.Text;
using Microsoft.AspNetCore.Http;
using NLog.Config;
using NLog.LayoutRenderers;
using NLog.Web.Internal;
namespace NLog.Web.LayoutRenderers
{
/// <summary>
/// Render the request IP for ASP.NET Core
/// </summary>
/// <example>
/// <code lang="NLog Layout Renderer">
/// ${aspnet-request-ip}
/// </code>
/// </example>
[LayoutRenderer("aspnet-request-ip")]
public class AspNetRequestIpLayoutRenderer : AspNetLayoutRendererBase
{
protected override void DoAppend(StringBuilder builder, LogEventInfo logEvent)
{
var httpContext = HttpContextAccessor.HttpContext;
if (httpContext == null)
{
return;
}
builder.Append(httpContext.Connection.RemoteIpAddress);
}
}
}
zarejestrować go (startup.cs)
ConfigurationItemFactory.Default.LayoutRenderers
.RegisterDefinition("aspnet-request-ip", typeof(AspNetRequestIpLayoutRenderer));
Zobacz również Extending NLog
Wykorzystanie
${aspnet-request-ip}
Dołącz także NLog.Web.AspNetCore!
Bardzo pomocna
Nic innego! W pierwszej odpowiedzi na to pytanie (http://stackoverflow.com/questions/34679727/use-nlog-in-asp-net-core-core-application/34888186) są ważne fragmenty tib-bitów, na które należy przyjrzeć, także. Zwłaszcza, jeśli 'HttpContextAccessor' ciągle pojawia się' null' –