写入以登录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.");

这就是我拥有的代码的精髓。我想写入日志以进行故障排除。它不喜欢其他方法。我看到一些例子,他们讨论了如何实现这一点,但我找不到真正的代码来尝试

我正在门户中编写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;
    }
公共静态异步任务运行(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。不确定还有什么地方可以检查可能的错误问题