Я использую java, maven, selenide
Я хочу сделать так, чтоб логи, которые создаются log4j 2, отображались в консоли.
Я добавил зависимости
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.20.0</version>
</dependency>
Добавил log4j2.properties файл
# configuration syntax
status=error
dest=err
name=PropertiesConfig
# publish console logs
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%-5level] %d{DEFAULT} %c:%L - %m%n
# capture logs
logger.app.name=base
logger.app.level=debug
logger.app.additivity=false
logger.app.appenderRef.console.ref=STDOUT
# root logger
rootLogger.level=info
rootLogger.appenderRef.stdout.ref=STDOUT
Потом я в BaseTest классе объявляю Logger
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
protected static Logger log = LogManager.getLogger();
И вызываю его в тестовом методе через log.info(“some string”);
Но в консоли пусто
В чем может быть дело?
asolntsev
(asolntsev)
11.Июль.2023 20:39:40
#2
Как минимум тут важно уточнить, где именно находится файл log4j2.properties.
@asolntsev src->main->resources
sergueik
(Сергей Кузьмин)
12.Июль.2023 04:20:29
#4
@Chess_Master
вот рабочий
log4j2.properties
(console only)
из src/main/resources/
- через s - у @Chess_Master в имени директории опечатка
# global console-only logger
rootLogger.level=info
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = System.stdout
appenders=console
appender.console.type = Console
appender.console.name = System.stdout
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %X{trace.id} [%t] - %-5p %msg%n
@sergueik спасибо, поправил путь
по поводу вашего log4j2 файла, у меня ситуация прежняя: ничего в консоль не выводится
sergueik
(Сергей Кузьмин)
12.Июль.2023 13:01:46
#6
работает - лог на скриншоте
curl http://192.168.0.64:8085/example?data=12345
@GetMapping
public String handler(@RequestParam(required = false) String data) {
loghelper.info("raw data " + data);
if (LogHelper.getLogger().isTraceEnabled()) {
loghelper.trace("raw data " + data);
}
try {
decodedData = URLDecoder.decode(data, StandardCharsets.UTF_8.toString());
} catch (UnsupportedEncodingException e) {
// ignore
}
loghelper.info(String.format("handler received: %s", decodedData));
return ("handler received: " + decodedData);
logHelper
просто оберкта анд
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.Level;
..
Удалось ли настроить логи в консоли? У меня аналогичная проблема, тоже использую java , maven , selenide
Попробую расписать подробнее. На проекте используется java, selenide, maven, для параллельного запуска тестов используем courgatte, так же подключен плагин surefire.
Так вот, настроил log4j: указал dependency, log4j2.xml, объект логгер. Запускаю в IDEA через runner - логи пишутся корректно, в файл логов тоже все записывается корректно. При запуске через mvn clear install test логов нет. Не понимаю уже куда копать, подскажите пожалуйста
sergueik
(Сергей Кузьмин)
06.Март.2024 17:38:22
#10
pom.xml
нету
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/suites/testng.xml</suiteXmlFile>
</suiteXmlFiles>
в
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
?
нет, такого нет. Что должен содержать файл testng.xml?
загружаю так же plugin в pom.xml
sergueik
(Сергей Кузьмин)
07.Март.2024 12:37:18
#12
извините testng наверное не относится
java, log4j
положите log4j2.xml в текушую если не находит и есть опция -Dlog4j.debug