当前位置: 首页 > 知识库问答 >
问题:

如何在Azure函数中更改日志级别

宦子琪
2023-03-14

我们正在开发几个部署到Azure Function Apps的Quarkus(在撰写本文时为2.5.4)应用程序。

我们注意到,我们所有的日志,无论html" target="_blank">代码的严重性如何,都在应用洞察中显示为信息。

public class ExampleClass {
    private static final Logger logger = LoggerFactory.getLogger(ExampleClass.class);

    public void welcome(@NotNull String name) {
        logger.trace("TRACE hello to {}", name);
        logger.debug("DEBUG hello to {}", name);
        logger.info("INFO hello to {}", name);
        logger.warn("WARN hello to {}", name);
        logger.error("ERROR hello to {}", name);
    }
}

我们已将 jboss 日志管理器添加到依赖项中:

    <dependency>
      <groupId>org.jboss.slf4j</groupId>
      <artifactId>slf4j-jboss-logmanager</artifactId>
    </dependency>

当我检查日志时,它显示为这样。

2022-02-24T07:58:14.325[Information] 2022-02-24T07:58:14.308[INFO]INFO hello to name
2022-02-24T07:58:14.325[Information] 2022-02-24T07:58:14.308[WARN]WARN hello to name
2022-02-24T07:58:14.325[Information] 2022-02-24T07:58:14.308[ERROR]ERROR hello to name

正如您所看到的,Azure以某种方式曲解了我们的日志严重性,使所有内容都显示在信息级别。

每行的第一部分(如2022-02-24T07:58:14.325[Information])由Azure添加,而该行的其余部分是Quarkus记录到控制台的内容。

我理解为什么前两个日志条目没有显示,因为我们将最低级别设置为INFO。

根据我从文档中了解到的情况,Azure 会自动识别日志。但是,对我们来说似乎并非如此。

有什么我们忘记的吗?

共有1个答案

柳鸿博
2023-03-14

每行的第一部分(如 2022-02-24T07:58:14.325 [信息])由 Azure 添加

默认情况下,可以将< code>[Information]添加到日志流中。

日志流用于查看应用程序日志文件的流。这相当于在本地开发期间调试函数时看到的输出。所有基于日志的信息都显示在日志流窗口中。

在实时流式传输日志之前,请启用要列出的日志类型。写入以 .txt、.log 或.htm结尾且存储在 _/LogFiles_ 目录 (d:/home/logfile) 中的文件的任何信息都由应用服务进行流式处理。日志文件中写入的任何内容都可以显示在日志流中。

请参阅此处了解更多信息

 类似资料:
  • 我一直在尝试更改用户日志的日志级别,即出现在

  • 我有一个用例,在这个用例中,我运行了数千个SQL查询和日志记录集,按照现在的情况,将每个查询写到控制台需要花费大量时间,并且会使客户端的调用超时。我试着将pom.xml中dev概要文件的logback.loglevel属性设置为ERROR,但是没有用。 所以我的问题是: < li >是否可以为单独的REST调用配置日志级别? < li >如何全局配置应用程序的日志级别?

  • 有没有一种方法可以在不更新host.json文件的情况下覆盖Azure函数应用程序的默认日志级别?我希望我的函数只在dev环境中将跟踪日志传递给应用程序洞察。我在想,如果一个环境变量可以设置,函数将知道什么时候传递日志。

  • 问题内容: 我在系统中收到以下消息:“ FacesMessage已入队…。 ”。 Sun的JavaServer Faces实现(1.2_07-b03-FCS)的解决方案是将其添加到web.xml: 但是出于某种原因,该解决方案不适用于我正在使用 Mojarra(1.2_15-b01-FCS)的 该实施 。 该文档说,我只需要简单地更改RenderResponsePhase的记录器即可。 Faces

  • 如何设置在TomEE中运行的OpenEJB组件的日志记录级别?我想从的源代码中查看调试日志记录语句。 我尝试修改conf/logging.properties并在WAR的WEB-INF\类中添加一个logging.properties文件,但我找不到正确的组合,我甚至不确定这些是要修改/创建的正确文件。

  • 我正在尝试将信息记录到代码的模块级别的应用程序洞察中,而不是记录到函数级别。 当记录器从函数内调用(在我的项目的任何模块中)时,我可以成功地记录信息、警告等,但当在函数外调用时(例如初始化一个模块,希望记录一些设置),我可以成功地记录信息、警告等 例如,当在azure functions中运行我的HttpTrigger应用程序时,这会起作用,并将信息记录到app Insights: 虽然这不起作用