2

sitecoreロギングに関する質問があります。 予期しないエラーが発生したときに、ユーザー固有のチケットIDに戻したい場合は、このエラーについて電子メールで通知します。ロギングデータベースにあります。sitecoreロギング(Sitecore.Diagnostics.Log.Error)とログレコードGUID

私はSQLアペンダに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.Diagnostics.Log.Error(これを "エラーが起こります");

更新: 次のコードを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")); 
     } 

答えて

2

Sitecoreロギングはlog4netに基づいています。アイデアはあなたの価値をlog4netのコンテキストに移すことです。あなたは試すことができます:

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

Sitecore.Loggingのassembley

+0

このコードを追加する特定の要件はありますか?このコードをGlobal.asax.csに追加しました。値はまだ空です(元の投稿への更新を追加しました)。 –

+0

ロギングの直前にこのコードを追加しようとしましたが、SiteCode.Diagnostics.Logに影響がなく、activityIdフィールドがまだ空であるようです。私はメッセージのテキストにGUIDを追加することによって終わった。それはSQL LIKEのstatement.Butで検索可能になりますそれでも分離されたフィールドにそれを持っているだろう。 –

0

からあなたがデータベースに書き込むために、次のコードを利用することができます:

//get your ID here - Example: 
var activityId = GetId(); 

Sitecore.Diagnostics.Log.Error(activityId, this); 

これは、データベースに書き込まれます。

関連する問題