Slf4j использует простой slf4j вместо logger4j

Я пишу плагин для Minecraft, который использует Gradle для добавления дополнительного кода в уже сделанный фреймворк (Sponge). Когда я пытаюсь использовать аннотацию @Slf4j из Ломбока, я могу использовать только уровни ведения журнала: информация и выше. Основываясь на комментарии, который я видел в другом сообщении, это указывает на то, что он использует простой slf4j, который уже должен быть встроен в расширяемую мной структуру. Когда я добавляю logger4j в качестве зависимости, slf4j продолжает использовать простой slf4j вместо logger4j. Я хотел бы иметь возможность использовать logger.debug и logger.trace в дополнение к другим методам. Я просто что-то не так настроил? Как мне указать slf4j использовать logger4j вместо простого slf4j?


person Matt Goodrich    schedule 02.04.2016    source источник


Ответы (1)


Если существует более одной реализации slf4j. Он выберет один случайным образом. Поэтому, если вы хотите использовать log4j вместо простого slf4, вы можете удалить simple-slf4j.jar из своего пути к классам.

подробные сведения: http://www.slf4j.org/codes.html#multiple_bindings

И если вы хотите использовать их одновременно, вы можете просто использовать log4j напрямую без slf4j. Например:

import org.apache.log4j.*;
public class LogTest {
  static Logger logger = Logger.getLogger(LogTest.class.getName());
  public static void main(String[] args) {
     PropertyConfigurator.configure ("src/log4j.properties");
     logger.debug("Debug ...");
     logger.info("Info ...");
     logger.warn("Warn ...");
     logger.error("Error ...");
 }

}

person Dai Kaixian    schedule 11.10.2016