Почему мой журнал Log4j не отображается на консоли? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть веб-приложение, созданное на Eclipse / STS с Spring MVC и Maven.

Я хочу добавить ведение журнала, поэтому я добавил SLF4 и Log4J в pom. xml вот так ..

     <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.30</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.30</version>
        <scope>test</scope>
    </dependency>

     <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.30</version>
        <scope>test</scope>
    </dependency>

У меня есть простой файл log4j.properties в папке project/src/main/resources, вот так ...

# Root logger option
log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Я создал класс Logger в своем основном WebController, вот так ...

private static Logger logger = LoggerFactory.getLogger(WebController.class);

И в моем методе "showMain" я делаю кое-какие журналы, например, вот ...

@RequestMapping(value={"", "/", "showhome"}, method={RequestMethod.POST,RequestMethod.GET})
public ModelAndView showHome(Model model) {

    logger.info("########### TEST LOG INFO");
    logger.error("########### TEST LOG ERROR");
    logger.warn("########### TEST LOG WARN");
    logger.debug("########### TEST LOG DEBUG");

    /* ... */
}

Но когда я запускаю приложение, я не 'не вижу никаких выходных данных журнала в консоли.

Я также не вижу ничего в выходных данных консоли, чтобы указать, что он даже использует структуру ведения журнала. И нет никакого сообщения "не могу найти log4j.properties" или чего-то еще.

Я пробовал разместить log4j.properties в разных местах проекта, но ничего.

Мне что-то не хватает просто? Что я пропустил?

Ответы [ 2 ]

1 голос
/ 29 мая 2020

В вашем pom. xml отсутствует механизм ведения журнала, вы можете использовать log4j2. Пожалуйста, подумайте об использовании последней версии log4j2 вместо log4j (1.2.x), потому что вы можете заранее:

  1. Lazy log: log4j (1.2.x) построить строка также, если уровень не активирован
  2. лямбда, чтобы избежать оценки дорогостоящих методов
  3. Множество приложений для современной платформы
  4. Более простой способ настройки множества параметры (перезагрузить конфигурацию, дополнения, ...)

пом. xml

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.13.3</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.13.3</version>
  </dependency>
</dependencies>
0 голосов
/ 29 мая 2020

Вы заявили, что добавили log4j в свой pom. xml, но я его не вижу, вы уверены, что это ваша новейшая версия pom. xml?

    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
...