Запись для входа в функцию 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);
}
}