1. デバッグ

デバッグ

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

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

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

トリガー実行ログ

  • Azure 関数で TraceWriter を使用して、ログを追加します。 このログは、関数レベルの [監視] タブを使用することで、Azure ポータルから参照できます。
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 レベルで設定 (= 静的) することでログに記録することができます。

MClient.Logger = new TraceWriterLogger(log);
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);
        }
    }
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();
        }
    }
この記事を改善するための提案がある場合は、 お知らせください!