我有關於sitecore日誌記錄的問題: 當意外錯誤發生時,我想返回到用戶唯一門票ID,所以當用戶將電子郵件發送此錯誤時被發現到日誌數據庫中。sitecore日誌記錄(Sitecore.Diagnostics.Log.Error)和日誌記錄GUID
我添加ACTIVITY_ID參數設置爲SQL的appender:
<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.Diagnostics.Log.Error(「Error happen」,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"));
}
是否有特定的要求我應該在哪裏添加此代碼?我已經將此代碼添加到Global.asax.cs中,並且值仍然爲空(我將更新添加到原始文章中)。 –
我試圖在日誌記錄之前添加此代碼,似乎它對SiteCode.Diagnostics.Log沒有任何影響,我的activityId字段仍爲空。我最終通過將GUID添加到消息文本中。它可以通過SQL LIKE語句進行搜索,但仍然可以將它分隔開來。 –