写入以登录Azure函数
这就是我拥有的代码的精髓。我想写入日志以进行故障排除。它不喜欢其他方法。我看到一些例子,他们讨论了如何实现这一点,但我找不到真正的代码来尝试 我正在门户中编写Azure函数 非常感谢您的帮助写入以登录Azure函数,azure,function,ilogger,Azure,Function,Ilogger,这就是我拥有的代码的精髓。我想写入日志以进行故障排除。它不喜欢其他方法。我看到一些例子,他们讨论了如何实现这一点,但我找不到真正的代码来尝试 我正在门户中编写Azure函数 非常感谢您的帮助 public static async Task<IActionResult> Run(HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request.");
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;
}
公共静态异步任务运行(HttpRequest请求,ILogger日志)
{
LogInformation(“C#HTTP触发器函数处理了一个请求。”);
bool isGood=Verify(myKey,myInput;
返回代码!=null
?(ActionResult)新的OkObjectResult($“请求成功”)
:新的BadRequestObjectResult(“错误请求”);
}//末端总管
公共静态bool验证(字符串键、字符串输入)
{
log.LogInformation(“在这里写点东西”);
回来
}
私有静态字符串CreateToken(字符串消息、字符串机密)
{
log.LogInformation(“在这里写点东西”);
回来
}
在类级别创建静态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);
}
}
公共静态类日志测试
{
静态ILogger_日志;
[函数名(“日志测试”)]
公共静态异步任务运行(
[HttpTrigger(AuthorizationLevel.Function,“get”,“post”,Route=null)]HttpRequest请求,
ILogger日志)
{
_log=log;
LogInformation(“C#HTTP触发器函数处理了一个请求。”);
罗吉特(“记录此”);
返回(ActionResult)新的OkObjectResult($“完成日志记录”);
}
私有静态void LogIt(字符串s)
{
_日志、登录信息;
}
}
您需要将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 "";
}
公共静态异步任务运行(HttpRequest请求,ILogger日志)
{
LogInformation(“C#HTTP触发器函数处理了一个请求。”);
bool isGood=Verify(myKey、myInput、log);
var token=CreateToken(“abc”、“def”、log);
返回代码!=null
?(ActionResult)新的OkObjectResult($“请求成功”)
:新的BadRequestObjectResult(“错误请求”);
}//末端总管
公共静态bool验证(字符串键、字符串输入、ILogger日志)
{
log.LogInformation(“在这里写点东西”);
返回true;
}
私有静态字符串CreateToken(字符串消息、字符串机密、ILogger日志)
{
log.LogInformation(“在这里写点东西”);
返回“”;
}
备选案文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 "";
}
}
公共静态类函数1
{
私有静态ILogger _log=null;
公共静态异步任务运行(HttpRequest请求,ILogger日志)
{
_log=log;
LogInformation(“C#HTTP触发器函数处理了一个请求。”);
bool isGood=Verify(myKey,myInput;
返回代码!=null
?(ActionResult)新的OkObjectResult($“请求成功”)
:新的BadRequestObjectResult(“错误请求”);
}//末端总管
公共静态bool验证(字符串键、字符串输入)
{
_log.LogInformation(“在这里写点东西”);
返回true;
}
私有静态字符串CreateToken(字符串消息、字符串机密)
{
_log.LogInformation(“在这里写点东西”);
返回“”;
}
}
您到底想记录什么?您的问题不清楚,代码中有一些示例(log.LogInformation(“在这里写点东西”);抱歉。最后两个不起作用。它只在处理http请求的主要部分起作用。该功能是处理github webhook。如果我在Verify或CreateToken中没有日志语句,它可以正常工作。如果我有一个类似于代码中的日志语句,它会失败并返回500。不确定还有什么地方可以检查可能的错误问题