sitecore日志记录(sitecore.Diagnostic.Log.Error)和日志记录GUID



我对sitecore日志记录有疑问:当发生意外错误时,我想返回给用户唯一的票证id,这样当用户将此错误通过电子邮件发送时,可以在日志数据库中找到它。

我已经向SQL appender:添加了activity_id参数

<param name="Parameter">
        <param name="ParameterName" value="@activity_id"/>
        <param name="DbType" value="String"/>
        <param name="Size" value="400"/>
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%P{activityId}"/>
        </param>
      </param>

现在,我需要添加activityId。通常我会这样做:

private void Application_Start()
{
...
    HttpContext.Current.Items.Add("activityId", Guid.NewGuid().ToString())

如何在SiteCore日志中执行此操作?所以我可以使用:

Sitecore.Diagnostic.Log.Error("错误发生",this);

更新:我已经向Global.asax.cs添加了以下代码,但值仍然为空。

public class Global : Sitecore.Web.Application
    {
        protected void Application_Start(object sender, EventArgs e)
        {               
            log4net.MDC.Set("activityId", Guid.NewGuid().ToString("D"));
        }

Sitecore日志记录基于log4net。想法是将您的价值转移到log4net环境中。你可以试试:

log4net.MDC.Set("activityId", "value");

来自Sitecore.日志汇编

您可以使用以下代码写入数据库:

//get your ID here - Example: 
var activityId = GetId();
Sitecore.Diagnostics.Log.Error(activityId, this);

这将写入您的数据库。

最新更新