在Linux Tomcat 7上安装我的webapp的日志文件?

It'*_*eto 5 logging tomcat logback slf4j logfile

我目前使用Eclipse和本地Tomcat 7服务器开发一个简单的Web应用程序.我配置了Eclipse,所以我可以从我的IDE中启动Tomcat 7 - 这里没什么了不起的.

在我的网络应用程序中,我使用SLF4J和Logback,在服务类中看起来像这样:

public class MyServiceImpl implements MyService
{
  private static Logger logger = LoggerFactory.getLogger( MyServiceImpl.class );

  public void doSomeStuff()
  {
      logger.info( "Doing some stuff" );
  }
}
Run Code Online (Sandbox Code Playgroud)

我的日志记录是这样配置的:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/MyTestWebApp.%d.log.zip</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.test" level="WARN" />

    <root level="WARN">
        <appender-ref ref="fileAppender" />
    </root>

</configuration>
Run Code Online (Sandbox Code Playgroud)

当我启动我的Web应用程序以及本地Tomcat 7服务器时,日志输出将转到

./log/MyTestWebApp.log
Run Code Online (Sandbox Code Playgroud)

正如所料,当前目录是我的Web应用程序所在的目录(例如,我的Maven pom.xml所在的目录).

当我在远程linux机器上启动我的Web应用程序时,我找不到任何"MyTestWebApp.log"文件,不是在我的web应用程序的directoy中,也不是在Tomcat7-root目录中.

所以我的简单问题是,这些日志分别在哪里,我的"MyTestWebApp.log"文件在哪里?

非常感谢你的帮助!

pal*_*int 4

日志文件位于 Tomcat 的起始目录中。您可以使用以下命令获取该目录:

grep -az "\bPWD" /proc/TOMCAT_PID/environ
Run Code Online (Sandbox Code Playgroud)

  • 据我所知,有两种方法:在 logback.xml 中设置绝对路径或确保 Tomcat 始终从正确的目录启动。我通常使用绝对路径并使用 Maven 配置文件生成生产战争,该配置文件对 logback.xml 进行资源过滤并将绝对路径放入其中。 (2认同)