tomcat - logback 的默认输出目录

标签 tomcat slf4j logback

我找不到我的日志文件在哪里。在 Linux 上,该文件与其他 tomcat 日志一样位于 tomcat/logs 目录中。在 Windows 上我不知道它在哪里。

这是我的配置(logback.xml)的一部分:

<appender name="DEBUG_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>DEBUG</level>
    </filter>
    <file>logs/audioguide-debug.log</file>
    <append>true</append>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>logs/audioguide-debug.log.%i.zip</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>20</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>20MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>%d [%thread] %-5level %logger | %msg%n</pattern>
    </encoder>
</appender>

当我输入绝对地址时,它可以工作,但我希望在两个平台上都可以使用相同的文件:

<appender name="DEBUG_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>DEBUG</level>
    </filter>
    <file>c:\programy\apache-tomcat-8.0.26\logs\audioguide-debug.log</file>
    <append>true</append>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>c:\programy\apache-tomcat-8.0.26\logs\audioguide-debug.log.%i.zip</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>20</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>20MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>%d [%thread] %-5level %logger | %msg%n</pattern>
    </encoder>
</appender>

最佳答案

如果 <file> 中给出了非绝对路径属性,它始终与 Logback 运行的进程的当前工作目录相关(在您的例子中是 Tomcat)。

如果我猜对了,在 Windows 中您是从 IDE 运行 Tomcat。在 Eclipse 中,您可以通过“参数”选项卡上的“运行配置”查看工作目录。在 Intellij 14 中,它位于 %USERPROFILE%\.IntelliJIdea14\system\tomcat\<configuration name>" 中的某个位置.

通常的做法是使用${catalina.base}\logs作为日志记录路径。这样您就可以使日志路径明确且易于验证。

关于tomcat - logback 的默认输出目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33037743/

相关文章:

java - Logback:SizeAndTimeBasedRollingPolicy 不遵守 totalSizeCap

jsf - Spring/JSF 项目中的 OmniFaces 不检索枚举属性

Tomcat servlet 映射错误 404

Java 8 读取文件列表,但文件保持打开状态,直到服务器卡住

java - 带有 SimpleLogger : Is it possible to log to a file AND System. 的 SLF4J?

java - Spring Cloud 配置服务器-登录错误

android - LogBack - 使用应用程序信息设置日志记录模式

java - 我们如何在不使用 catalina.properties 的情况下将属性传递到 tomcat 上下文,或者是否有更好的方法来注入(inject)属性?

java - Hibernate:如何调整默认日志记录级别(SJF4J 和 JDK 1.4 记录器)?

java - 独立程序中的 slf4j、log4j 和 JBoss 7 logmanager => 没有任何结果