JsonPath 忽略输出的调试日志

JsonPath ignore the Debug logs on output

我在 Java 中使用 JsonPath 进行 JSON 解析工作。有没有什么方法可以删除 运行 代码后的 debug 日志?

所以基本上,我只是想 运行 我在 Maven 中的解析代码:

String pageName = JsonPath.read(json, "$['pageInfo']['pageName']");
        System.out.println(pageName);

但是当 运行 编译 jar 工件文件时,它的第一行显示如下:

0 [main] DEBUG com.jayway.jsonpath.internal.path.CompiledPath - Evaluating path: $['pageInfo']['pageName']

如何忽略这一行?这出现在 运行ning 每次 JsonPath.read() 调用时。

更新:

最初我从 log4j 获得了一些红色日志,所以添加了这些依赖项。红色的日志消失了,但是上面的日志(现在是黑色的)出现了!

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>

我还添加了 logBack 依赖项。但是仍然无法识别代码片段:

这个问题实际上是 2017 年在他们的官方 github 页面上提出的。

看来您需要使用 logback 作为日志实现

这里是 andreasaronsson 在 github issue

中提供的代码
LoggerContext logContext = (LoggerContext) LoggerFactory.getILoggerFactory();
ch.qos.logback.classic.Logger log = logContext.getLogger("com.jayway.jsonpath.internal.path.CompiledPath");
log.setLevel(Level.INFO);

你的依赖项中需要这个

<dependencies>
   <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.11.1</version>
   </dependency>
   <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.11.1</version>
   </dependency>
   <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
   </dependency>
</dependencies>

有关此问题的更多关闭信息,您可以找到它 here

您使用的是什么日志框架?只需将 com.jayway.jsonpath 记录器的级别设置为 INFO 或更高。下面是使用 XML 配置 Logback and Log4j 2.

的示例

Logback:

<configuration>
  …
  <logger name="com.jayway.jsonpath" level="INFO"/>
  <root level="DEBUG">          
    <appender-ref ref="STDOUT" />
  </root>  
</configuration>

Log4j 2:

<Configuration status="WARN">
  …
  <Loggers>
    <Logger name="com.jayway.jsonpath" level="info">
      <AppenderRef ref="STDOUT"/>
    </Logger>
    <Root level="debug">
      <AppenderRef ref="STDOUT"/>
    </Root>
  </Loggers>
</Configuration>