Разбираем, из чего состоит хорошее лог‑сообщение (время, уровень
INFO/
ERROR, имя логгера, текст, стек), как правильно форматировать записи через шаблоны SLF4J/Log4j2 (
"{}" вместо конкатенации), как логировать исключения (
logger.error(..., ex)), когда использовать уровни
ERROR/
WARN/
INFO/
DEBUG/
TRACE, а также лучшие практики: без чувствительных данных, понятные сообщения, корреляционные ID (
orderId,
userId) и грамотная конфигурация
log4j2.xml.