Запись для входа в функцию Azure

Это внутренняя часть кода, который у меня есть. Я хочу записать в журнал для устранения неполадок. Не нравится в других методах. Я видел несколько примеров, в которых они обсуждали, как этого добиться, но не смог найти реального кода, чтобы попробовать.

Я пишу функцию Azure из портала.

Любая помощь очень ценится.

public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

   bool isGood = Verify(myKey, myInput;

   return code != null
        ? (ActionResult)new OkObjectResult($"Request Successful")
        : new BadRequestObjectResult("Bad Request");

} // End Main

public static bool Verify(String key, String input)

    {

        log.LogInformation("Write something here");

    return;

    }

    private static string CreateToken(string message, string secret)

    {
        log.LogInformation("Write something here");
        return;
    }

2 ответа

Решение

Вам нужно передать ILogger вашим методам, назначив его статической переменной в методе Run:

Опция 1:

public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

   bool isGood = Verify(myKey, myInput, log);
   var token = CreateToken("abc","def",log);

   return code != null
        ? (ActionResult)new OkObjectResult($"Request Successful")
        : new BadRequestObjectResult("Bad Request");

} // End Main

public static bool Verify(String key, String input, ILogger log)

    {

        log.LogInformation("Write something here");

    return true;

    }

    private static string CreateToken(string message, string secret, ILogger log)

    {
        log.LogInformation("Write something here");
        return "";
    }

вариант 2:

public static class Function1
{
   private static ILogger _log = null;
   public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
   {
    _log = log;
    log.LogInformation("C# HTTP trigger function processed a request.");

   bool isGood = Verify(myKey, myInput;

   return code != null
        ? (ActionResult)new OkObjectResult($"Request Successful")
        : new BadRequestObjectResult("Bad Request");

} // End Main

public static bool Verify(String key, String input)

    {

        _log.LogInformation("Write something here");

    return true;

    }

    private static string CreateToken(string message, string secret)

    {
        _log.LogInformation("Write something here");
        return "";
    }
}

Создайте статический ILogger на уровне класса, назначьте его в одном из вызываемых методов Функций Azure, а затем используйте его в других классах.

public static class LogTest
{
    static ILogger _log;

    [FunctionName("LogTest")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        _log = log;
        log.LogInformation("C# HTTP trigger function processed a request.");

        LogIt("Log this");

        return (ActionResult)new OkObjectResult($"Done logging");
    }

    private static void LogIt(string s)
    {
        _log.LogInformation(s);
    }
}
Другие вопросы по тегам