提问者:小点点

通过环境变量设置Quarkus日志记录类别级别


在Spring中,可以通过环境变量设置日志类别级别。我在Quarkus应用程序中使用以下记录器声明进行了相同的尝试:

package org.my.group.resteasyjackson;

public class JacksonResource {

  private static final Logger LOGGER = LoggerFactory.getLogger(JacksonResource.class);
  
  @GET
  public Set<Quark> list() {
    LOGGER.info("Hello");
    return quarks;
  }
}

使用执行生成工件

QUARKUS_LOG_CATEGORY_ORG_MY_LEVEL=WARN java-jar my-artifactId-my-version-runner.jar

将在信息级别记录任何内容(因为它是默认值),因此“Hello”消息。

但是,插入

quarkus.log.category."org.my".level=WARN

在< code > application . properties 文件中,根据需要工作。这个用例中的环境变量不能用于Quarkus应用程序吗?


共3个答案

匿名用户

刚刚尝试使用夸克1.13.1并为引号添加额外的下划线似乎有效,请尝试:

quar kus _ LOG _ CATEGORY _ _ ORG _ MY _ _ LEVEL = WARN

匿名用户

您可以这样做:

quarkus.log.category."org.my".level=${LOG_LVL:INFO}

这只是意味着:使用我的 env 变量“LOG_LVL”中的日志级别,如果不存在,则使用 INFO 作为默认值。

您可以将此变量设置为 env.variable 或在启动期间将其作为系统参数传递,但我不确定语法是否为系统参数。

匿名用户

您应该能够使用这样的系统属性(!=环境变量):

java -Dquarkus.log.category.\"org.my\".level=WARN ...

注意:系统财产将覆盖其application.property,但由于错误导致的quarkus.profile除外。

不知道环境变量是否也能覆盖它们。也许< code>"需要转义。(我发现环境变量很脆弱,我更喜欢系统属性。)