Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 为什么我的Log4j日志没有显示在控制台上?_Spring_Eclipse_Maven_Log4j_Slf4j - Fatal编程技术网

Spring 为什么我的Log4j日志没有显示在控制台上?

Spring 为什么我的Log4j日志没有显示在控制台上?,spring,eclipse,maven,log4j,slf4j,Spring,Eclipse,Maven,Log4j,Slf4j,我有一个内置于Eclipse/STS中的web应用程序,带有SpringMVC和Maven 我想添加日志记录,所以我向pom.xml添加了SLF4和Log4J,如下所示 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifa

我有一个内置于Eclipse/STS中的web应用程序,带有SpringMVC和Maven

我想添加日志记录,所以我向pom.xml添加了SLF4和Log4J,如下所示

     <!-- 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>
我在我的主网络控制器中创建了一个Logger类,如下所示

# 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
private static Logger logger = LoggerFactory.getLogger(WebController.class);
@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");

    /* ... */
}
在我的“showMain”方法中,我正在做一些日志记录工作,像这样

# 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
private static Logger logger = LoggerFactory.getLogger(WebController.class);
@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放在项目中的不同位置,但什么都没有


我一定错过了一些简单的东西?我遗漏了什么?

您说您在pom.xml中添加了log4j,但我没有看到,您确定这是您的pom.xml的最新版本吗

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

log4j
log4j
1.2.17

您声明在pom.xml中添加了log4j,但我没有看到,您确定这是您的pom.xml的最新版本吗

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

log4j
log4j
1.2.17

如果pom.xml中缺少日志引擎,可以使用log4j2。 请考虑使用最新版本而不是Log4J(1.2。x),因为您可以提前:

  • Lazy log:log4j(1.2.x)在未激活某个级别时也生成一个字符串
  • lambda,以避免评估昂贵的方法
  • 现代平台的许多附加器
  • 配置大量参数的更简单方法(重新加载配置、追加器等)
  • pom.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>
    
    
    org.apache.logging.log4j
    log4japi
    2.13.3
    org.apache.logging.log4j
    log4j型芯
    2.13.3
    
    如果pom.xml中缺少日志引擎,可以使用log4j2。 请考虑使用最新版本而不是Log4J(1.2。x),因为您可以提前:

  • Lazy log:log4j(1.2.x)在未激活某个级别时也生成一个字符串
  • lambda,以避免评估昂贵的方法
  • 现代平台的许多附加器
  • 配置大量参数的更简单方法(重新加载配置、追加器等)
  • pom.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>
    
    
    org.apache.logging.log4j
    log4japi
    2.13.3
    org.apache.logging.log4j
    log4j型芯
    2.13.3
    
    这就是我们所缺少的!谢谢我错误地认为slf4j-log4j12就足够了。谢谢谢谢你的帮助,仅供参考,我发布了另一个Log4j问题,如果你能看一下,那就太好了!对不起,伙计,我出去了几天,我检查了一下,很高兴你在第二个问题中找到了答案。干杯这就是我们所缺少的!谢谢我错误地认为slf4j-log4j12就足够了。谢谢谢谢你的帮助,仅供参考,我发布了另一个Log4j问题,如果你能看一下,那就太好了!对不起,伙计,我出去了几天,我检查了一下,很高兴你在第二个问题中找到了答案。干杯你是对的,但我从另一个用户那里得到了类似的答案,所以我首先将他们的答案标记为正确。谢谢你的帮助@Elliot.Easton.2020这是一个更好的答案。最新版本的
    log4j
    (1.2.17)于2012年5月发布。没有理由不使用用现代工具更新的维护版本。你是对的,但我从另一个用户那里得到了类似的答案,所以我首先标记了他们的正确答案。谢谢你的帮助@Elliot.Easton.2020这是一个更好的答案。最新版本的
    log4j
    (1.2.17)于2012年5月发布。没有理由不使用用现代工具更新的维护版本。