【问题标题】:Tomcat and SLF4J - not writing log to fileTomcat 和 SLF4J - 不将日志写入文件
【发布时间】:2014-08-31 23:04:48
【问题描述】:

我正在尝试使用 slf4j-log4j12 为我的应用程序实现日志记录。我已经配置了所有东西,当我在独立模式下测试它时它运行良好。现在我已经将它部署在 tomcat 中,它停止工作了!它只是在控制台中打印日志(甚至是我使用 slf4j 创建的日志),而不是在文件中!

这是我的 log4j.xml:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="Threshold" value="INFO" />
        <param name="File" value="assp.log" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d  %-5p  [%c{1}] %m %n" />
        </layout>
    </appender>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %c{1} - %m%n" />
        </layout>
    </appender>

    <root>
        <priority value="debug" />
        <appender-ref ref="fileAppender" />
        <appender-ref ref="console" />
    </root>
</log4j:configuration>

我的依赖:

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>

这是我的测试课

private Logger LOGGER = LoggerFactory.getLogger(Test.class);
@RequestMapping("*")
public String root(RedirectAttributes redirectAttributes){
    LOGGER.info("{} - entering root page. Redirecting to index.", System.currentTimeMillis());
    return "redirect:/index";
}

输出(在控制台中):

INFO 1404999952210 - entering root page. Redirecting to index.

有人可以帮忙吗? 谢谢

【问题讨论】:

  • 检查日志文件的位置/权限。可能你没有添加写权限让tomcat修改。
  • 并在绝对路径中给出日志文件,以便您知道必须写入的位置。
  • 我给出了绝对路径,但没有运气,虽然它是独立工作的......
  • 检查 Tomcat 日志级别。如果您有访问权限,请将 Tomcat 日志级别提高到 ALL,重新启动服务器并在尝试启动应用程序日志记录时检查 Tomcat 日志输出是否有错误。

标签: java spring tomcat logging slf4j


【解决方案1】:

过了一会儿,我解决了这个问题。我按照apache文档Here - Using LOG4J

希望这可以帮助任何与我遇到同样问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-25
    • 2019-04-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2016-10-13
    • 2012-04-06
    相关资源
    最近更新 更多