JsonPath игнорирует журналы отладки при выводе
Я использую 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
зависимость. Но все же фрагмент кода не может быть распознан:
2 ответа
Этот вопрос был задан в 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>
Для получения дополнительной информации о проблеме вы можете найти ее здесь
Какой каркас журналирования вы используете? Просто установите уровень com.jayway.jsonpath
войти в ИНФО или выше. Ниже приведены примеры выполнения этого с помощью 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>