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>
我在 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>