デバッグ

Current version: 4.0

デバッグは次の方法で実行できます。

  • Sitecore Content Hub のトリガー実行ログ。 ここでは、トリガーが正常に実行されたか、まったく実行されなかったかを確認できます。再試行回数と応答の詳細もここで確認できます。

トリガー実行ログ

  • Azure 関数で TraceWriter を使用して、ログを追加します。 このログは、関数レベルの [監視] タブを使用することで、Azure ポータルから参照できます。
RequestResponse
public static class SetIsReleased
{
    [FunctionName("SetIsReleased")]
    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "head", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
    {
      // Add logging
      log.Info("Hello world!");
    }
}

Azure 呼び出しログ

  • Azure Functions にリモート接続してライブでデバッグを実行するために、Visual Studio 内からデバッガーをアタッチします。 この操作は、Cloud Explorer ツールから実行できます。

Cloud Explorer

  • Azure Functions はローカルで実行することもできます。 ローカル開発環境から、同じ Sitecore Content Hub インスタンスに接続します。 ローカルの REST クライアント (Postman など) を使用して要求の受信を模倣し、Azure Functions を介してローカルでデバッグできます。

  • MClient によって送信された要求も、Logger クラスを実装して MClient レベルで設定 (= 静的) することでログに記録することができます。

RequestResponse
MClient.Logger = new TraceWriterLogger(log);
RequestResponse
public class TraceWriterLogger : Logger
    {
        private readonly TraceWriter _logger;

        public TraceWriterLogger(TraceWriter logger)
        {
            _logger = logger;
        }

        public override bool IsDebugEnabled => true;

        public override bool IsInfoEnabled => true;

        public override bool IsWarnEnabled => true;

        public override bool IsErrorEnabled => true;

        protected override void LogDebug(string message)
        {
            _logger.Info(message);
        }

        protected override void LogError(Exception exception)
        {
            _logger.Info(exception.ToString());
        }

        protected override void LogError(string message, Exception exception)
        {
            _logger.Info(message);
            _logger.Info(exception.ToString());
        }

        protected override void LogInfo(string message)
        {
            _logger.Info(message);
        }

        protected override void LogWarn(string message)
        {
            _logger.Info(message);
        }
    }
RequestResponse
public class ConsoleLogger : Logger
    {
        public override bool IsDebugEnabled => false;

        public override bool IsInfoEnabled => false;

        public override bool IsWarnEnabled => true;

        public override bool IsErrorEnabled => true;

        protected override void LogDebug(string message)
        {
            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine(message);
            Console.ResetColor();
        }

        protected override void LogError(Exception exception)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine(exception.ToString());
            Console.ResetColor();
        }

        protected override void LogError(string message, Exception exception)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine(message);
            Console.WriteLine(exception.ToString());
            Console.ResetColor();
        }

        protected override void LogInfo(string message)
        {
            Console.WriteLine(message);
        }

        protected override void LogWarn(string message)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(message);
            Console.ResetColor();
        }
    }

Do you have some feedback for us?

If you have suggestions for improving this article,