Ошибки io.qameta.allure.AllureLifecycle в логах. Как их убрать

Добрый день!
Проблема с логами от Allure
При запуска теста, в датапровайдере есть вызовы attachment. Но тк тест еще никакой не запущен, вижу в логах следующее:

[main] ERROR io.qameta.allure.AllureLifecycle - Could not start step: no test case running
[main] ERROR io.qameta.allure.AllureLifecycle - Could not add attachment: no test is running
[main] ERROR io.qameta.allure.AllureLifecycle - Could not update step: no step running
[main] ERROR io.qameta.allure.AllureLifecycle - Could not stop step: no step running

Не могу понять как мне от них избавиться. Пробовала log4j2 использовать. Но такое ощущение, что эти логи мимо него проходят и не отлавливаются.
Если кто-то сталкивался с таким, помогите пожалуйста

1 лайк

Всё правильно ругается, тест ещё не начался, не к чему ещё аттачить.
В датапровайдере сохраняйте то что надо приаттачить куда-нить (контекст, переменную, файл или т.п.), и атачьте уже в бефоре тест.

На самом деле, аттачить ничего и не надо. В глубине вызовов в Датапровайдере есть работа с Апи. Реализовано так, что вызовы аттачатся. И вроде оно удобно, универсально выходит. Но в итоге засоряются логи

Логи Аллюр пишет через slf4j
У меня используется log4j2
Может, в этом есть какая-то проблема

Тогда, не обращайте внимания на сообщения.

Я не могу) Их слишком много.

Реализуйте метод вызова апи без аттача ))

Этот вариант не подходит) Все же основная идея, разобраться с логами и отключить ненужное

Знакомая проблема, сам сталкивался с этим, только для логов от LittleProxy.
И тоже долго искал решение, но в итоге нашёл.

Решается это так:
Добавляете simplelogger.properties в src\main\resources следующего содержания:

# SLF4J's SimpleLogger configuration file
# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err.

# Default logging detail level for all instances of SimpleLogger.
# Must be one of ("trace", "debug", "info", "warn", or "error").
# If not specified, defaults to "info".
org.slf4j.simpleLogger.defaultLogLevel=info

# ТУТ ПЕРЕЧИСЛЯМ ВСЕ КЛАССЫ для которых хотим задизейблить логирование
org.slf4j.simpleLogger.log.org.littleshoot.proxy.impl.ProxyToServerConnection=off

# Set to true if you want the current date and time to be included in output messages.
# Default is false, and will output the number of milliseconds elapsed since startup.
org.slf4j.simpleLogger.showDateTime=true

# The date and time format to be used in the output messages.
# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat.
# If the format is not specified or is invalid, the default format is used.
# The default format is yyyy-MM-dd HH:mm:ss:SSS Z.
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss

# Set to true if you want to output the current thread name.
# Defaults to true.
org.slf4j.simpleLogger.showThreadName=true

# Set to true if you want the Logger instance name to be included in output messages.
# Defaults to true.
org.slf4j.simpleLogger.showLogName=true

# Set to true if you want the last component of the name to be included in output messages.
# Defaults to false.
org.slf4j.simpleLogger.showShortLogName=false

Обратите внимание на сроку:

# ТУТ ПЕРЕЧИСЛЯМ ВСЕ КЛАССЫ для которых хотим задизейблить логирование
org.slf4j.simpleLogger.log.org.littleshoot.proxy.impl.ProxyToServerConnection=off

Собственно, всё.
Лайки, подписка :wink:

5 лайков

Лайк, подписка, колокольчик! Ничего не жаль для вас :grin: Спасибо!

Спасибо за тему, я тоже столкнулась точь-в-точь с этим же для Allure :slight_smile:

Форматирование логов избавило меня от мусора) Надеюсь и вам подойдет)

1 лайк

Все намного проще, как по мне, 2 строки кода где нибудь на этапе инициализации и нет проблем с логами

Logger allureLogger = (Logger) LoggerFactory.getLogger(“io.qameta.allure.AllureLifecycle”);
allureLogger.setLevel(OFF);

Спасибо вам, добрый человек!