【问题标题】:logging to file on tomcat记录到tomcat上的文件
【发布时间】:2016-09-29 13:56:58
【问题描述】:

我使用 Tomcat 作为服务器。我也在使用

这是我的 pom 文件:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.21</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.7</version>
        </dependency>

这是我放在 src/main/sources 上的 log4j.properties

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

这就是我在课堂上使用它的方式:

 private static final Logger logger = LoggerFactory.getLogger(getClass());

 //...

 logger.debug("TEST");

当我在 Netbeans 上运行控制台输出时,我能够在控制台输出中看到记录器消息。我知道它记录在 catalina.out 但我没有在任何地方获得 example.log。它应该在哪里创建?

我使用的是嵌入在 Netbeans 上的 tomcat,所以它的路径是 C:\Users\&lt;user&gt;\AppData\Roaming\NetBeans\8.1\apache-tomcat-8.0.27.0_base 但我在任何地方都找不到example.log。我不想检查catalina.out,所以这就是为什么我希望将自己的日志消息存储在example.log.

我做错了什么?

谢谢!

【问题讨论】:

    标签: java tomcat logging slf4j


    【解决方案1】:

    看起来您在依赖项中使用 Logback,但尝试配置 log4j。

    如果您想使用 log4j 作为 SLF4J 的日志记录后端,请在 pom.xml 中使用 slf4j-log4j12 和 log4j 依赖项而不是 logback。

    如果您想使用 logback 作为您的日志记录后端,请使用 logback's configuration 文件而不是 log4j 文件。

    【讨论】:

    • 将文件名更改为 logback.xml,现在它正在工作(控制台输出已更改,所以我知道我正在使用我的 .xml 文件来格式化日志输出)。但是,我找不到 .log 文件。它应该存放在哪里?谢谢!
    【解决方案2】:

    已解决,现在可以正常使用了!

    <configuration>
    
        <property name="DEV_HOME" value="c:/logs" />
    
        <appender name="FILE" class="ch.qos.logback.core.FileAppender">
            <file>${DEV_HOME}/safeMO.log</file>
            <encoder>
                <pattern>[%thread] %logger{10} [%file:%line] %msg%n</pattern>
            </encoder>
        </appender>
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
            </encoder>
        </appender>
    
        <root level="debug">
            <appender-ref ref="FILE" />
            <appender-ref ref="STDOUT" />
        </root>
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 2013-01-17
      • 2018-11-16
      • 1970-01-01
      • 2014-03-25
      • 1970-01-01
      相关资源
      最近更新 更多