2011-08-22 87 views
5

我目前使用Eclipse和本地Tomcat 7服务器开发一个简单的Web应用程序。我配置了Eclipse,因此我可以从我的IDE中启动Tomcat 7 - 这里没有多少魔力。我的webapp的日志文件在Linux Tomcat 7安装中的位置?

在我的web应用程序,我使用SLF4J用的logback,它看起来像这样的服务类:

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

    public void doSomeStuff() 
    { 
     logger.info("Doing some stuff"); 
    } 
} 

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

<?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> 

当我开始我的网站应用程序和当地的Tomcat 7服务器,日志记录输出去

./log/MyTestWebApp.log 

如预期的那样,其中curr ent目录就是我的web应用程序所在的位置(例如,我的Maven pom.xml所在的位置)。

当我在远程linux机器上启动我的web应用程序时,找不到任何“MyTestWebApp.log”文件,不在我的web应用程序的directoy中,也不在Tomcat7根目录中。

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

非常感谢您的帮助!

+1

如果它工作在本地计算机上,但并非遥不可及,那么你可能要检查的文件,文件夹等的特权。 – Will

+0

感谢您的回答,请在palacsint的博文中查看我的评论,我在“Tomcat/bin/log/*”目录中找到了我的日志文件。 –

回答

4

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

grep -az "\bPWD" /proc/TOMCAT_PID/environ 
+0

感谢您的回答。我在我的“Tomcat/bin/log/*”目录中找到了我的日志文件。那么,我不认为这是一个正确的日志文件路径:)有没有一种常见的方法来配置系统,所以日志文件进入正确的地方(这是什么)? –

+2

正如我所看到的,有两种方法:在您的logback.xml中设置绝对路径,或者确保Tomcat始终从正确的目录启动。我通常使用绝对路径并使用maven配置文件生成生产战争,该配置文件在logback.xml上进行资源过滤并将绝对路径放入其中。 – palacsint

3

您是否检查过tomcat7目录中的权限?即谁拥有/ var/lib/tomcat7?有时候安装会使这个目录拥有root权限,不允许Tomcat7用户在那里创建一个'log'目录。

要解决它,只需

sudo chown tomcat7:tomcat7 /var/lib/tomcat7 

希望它能帮助, Sekm