java - 如何更改 Azure Functions 中的日志级别

标签 java azure azure-functions quarkus

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

我们注意到,我们的所有日志,无论代码的严重程度如何,都会在应用程序洞察中显示为信息。

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。

据我了解the documentation ,Azure会自动识别日志。然而,我们的情况似乎并非如此。

有什么我们忘记的事情吗?

最佳答案

The first part of every line (like 2022-02-24T07:58:14.325 [Information]) is added by Azure

默认情况下可以将[信息]添加到日志流中。

内置日志流:

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

流日志:

在实时流式传输日志之前,启用您想要列出的日志类型。写入存储在 _/LogFiles_ 目录 ( d:/home/logfiles) 由应用服务进行流式传输。 日志文件中写入的任何内容都可以显示在日志流中。

本地 enter image description here 在门户日志流中 enter image description here 在上面的屏幕截图中,您可以检查本地日志中写入的所有内容,这些内容可以添加到日志流中。默认情况下,运行时间和[信息]始终在日志流中可用(日志文件中添加的每个新行2022-02-24T14:40:46.015 [信息] ] 日志行 在日志流中)

引用here了解更多信息

关于java - 如何更改 Azure Functions 中的日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71249025/

相关文章:

java - Jetty ALPN/NPN 尚未正确配置

c# - 使用 BlobTrigger 的 Azure 函数中的 Activity.Current 为 null

python - 我们可以将 Databricks 输出传递给 ADF 作业中的函数吗?

java - 从 jar 执行主类

java - 构造函数抑制无法与 PowerMock+Mockito 一起使用

c# - Azure Function beta/v2 - 集成依赖项 - SQL/MySql

asp.net - 如何在 LoadAndPerformanceTestProject 的 LoadTest 中设置测试 URL - Basic

Azure 应用服务 - REST API 在 url 参数中带有斜杠

azure - Azure 函数的最大实例数

java - Spring Boot 应用程序未在 AWS Elastic Beanstalk 中进行身份验证