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

如何根据一个cmd行参数将不同级别的日志输出到stdout?

齐起运
2023-03-14

我使用slf4j 1.7.2和logback 1.0.7。我希望能够为我的Java应用程序提供一个命令行参数,该参数设置记录到stdout的消息的级别。例如,-loglevel trace应导致记录的所有消息,但-loglevel warning仅导致警告和错误。日志应该来自应用程序中的所有记录器(=根记录器)。

虽然记录到stdout的级别应该受到影响,但我仍然希望根记录器记录所有级别,因为它们被发送到其他附加程序,例如diagnostics.txt文件,该文件应该始终具有所有级别。

干杯!
康拉德

共有1个答案

耿永寿
2023-03-14

Logback的配置文件允许使用变量。您可以定义一个系统属性(JVM的-d参数),并在配置文件中使用该值。语法为:

${VARIABLE_NAME}

您应该能够在logback.xml文件中定义一个变量,例如-dsysout_log_level=error Then,而不是为筛选器设置特定的级别,您可以使用${SYSOUT_LOG_LEVEL},例如。

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  <level>${SYSOUT_LOG_LEVEL}</level>
</filter>
 类似资料:
  • 我正在尝试创建基于不同级别的“不同”附加器,但到目前为止,我找不到一种隔离日志级别的方法。。。。 我需要一种方法,能够土地只有INFO优先排序的日志被追加。因为INFO级别的日志记录也会显示DEBUG标记的日志记录器...这对我没有帮助。 另一件事是,对于“相同”包,我无法定义不同的日志附加器: 在这里,我得到了如下错误:

  • 如何编写一个简单的log4j2.xml文件,将不同级别的日志放入不同的文件中? 例如,我们有错误日志,任何信息日志,我需要将所有错误日志消息推入一个日志文件,所有信息日志消息推入另一个文件。 我怎么做?

  • 我很高兴地使用SLF4J和logback和使用2个附加为根记录器。 stdout的调试级别 文件的信息级别 所有日志都需要成为输出的一部分(因此需要根记录器)。

  • 本文向大家介绍Log4j按级别输出日志到不同文件的实现方法,包括了Log4j按级别输出日志到不同文件的实现方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上就是小编为大家带来的Log4j按级别输出日志到不同文件的实现方法全部内容了,希望大家多多支持呐喊教程~

  • 我登录jetty时遇到问题。我在文件中写日志。在生成的日志文件中,应用程序的日志级别是info,但我将其设置为WARN。我有个想法,jetty不用过滤就可以从应用程序中写入日志,是吗? > 为jetty设置日志记录: 文件{jetty.base}/resources/jetty logging。属性 文件{jetty.base}/资源/log4j.properties 文件{jetty.base}

  • 以下是我的java logback配置: 我想在这里做的是:我有两个日志追加器:一个用于控制台,另一个用于日志文件;但是对于相同的java软件包(例如:组织.apache.zookeeper),我想使用两个不同的日志级别,INFO用于文件追加器和错误用于康多尔;但是我的日志配置优势无法正常工作。任何人都可以找出我的错误或一些解决方案吗?