Move logic from the HttpRequestIdEnricher into our own class so its not coupled to Serilog when attempting to get ReqId in UmbracoModule start & end log requests

This commit is contained in:
Warren Buckley
2018-09-14 14:44:00 +01:00
parent daa8b90372
commit 8bad44782b
4 changed files with 37 additions and 29 deletions

View File

@@ -0,0 +1,32 @@
using System;
using System.Web;
namespace Umbraco.Core.Logging
{
public static class LogHttpRequest
{
static readonly string RequestIdItemName = typeof(LogHttpRequest).Name + "+RequestId";
/// <summary>
/// Retrieve the id assigned to the currently-executing HTTP request, if any.
/// </summary>
/// <param name="requestId">The request id.</param>
/// <returns><c>true</c> if there is a request in progress; <c>false</c> otherwise.</returns>
public static bool TryGetCurrentHttpRequestId(out Guid requestId)
{
if (HttpContext.Current == null)
{
requestId = default(Guid);
return false;
}
var requestIdItem = HttpContext.Current.Items[RequestIdItemName];
if (requestIdItem == null)
HttpContext.Current.Items[RequestIdItemName] = requestId = Guid.NewGuid();
else
requestId = (Guid)requestIdItem;
return true;
}
}
}