JsonPath игнорирует журналы отладки при выводе - PullRequest
0 голосов
/ 11 декабря 2018

Я использую JsonPath для моей работы по анализу JSON на Java.Есть ли способы удалить журналы 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']

Как игнорировать эту строку?Это появляется при выполнении каждого 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.Но все же фрагмент кода не может быть распознан:

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Какие рамки ведения журнала вы используете?Просто установите уровень логгера com.jayway.jsonpath на INFO или выше.Ниже приведены примеры выполнения этого с помощью конфигурации XML для Logback и 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>
0 голосов
/ 11 декабря 2018

Этот вопрос фактически задавался в 2017 году на их официальной странице github.

Похоже, вам нужно использовать logback в качестве реализации журнала

вот код, предоставленный andreasaronsson из githubпроблема

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>

Для более подробного рассмотрения проблемы вы можете найти ее здесь

...