I currently develop a simple web app using Eclipse and a local Tomcat 7 server. I configured Eclipse so I can start the Tomcat 7 right out of my IDE - not much magic here.
In my web app, I use SLF4J with Logback, which looks like this in a service class:
public class MyServiceImpl implements MyService
{
private static Logger logger = LoggerFactory.getLogger( MyServiceImpl.class );
public void doSomeStuff()
{
logger.info( "Doing some stuff" );
}
}
My logging is configured this way:
<?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>
When I start my web app and so the local Tomcat 7 server, the logging output goes to
./log/MyTestWebApp.log
as expected, where the current directory is that where my web app is (for example, where my Maven pom.xml is).
When I start my web app on a remote linux machine, I can't find any "MyTestWebApp.log" file, not in directoy of my web app, no开发者_C百科r in the Tomcat7-root directory.
So my simple question is, where do those logs go and where is my "MyTestWebApp.log" file respectively?
Thanks a lot for your help!
The log file is inside the starting directory of Tomcat. You can get this directory with this command:
grep -az "\bPWD" /proc/TOMCAT_PID/environ
Have you checked the permissions inside your tomcat7 directory? I.e. who owns /var/lib/tomcat7 ? Sometimes an installation will make this directory owned by root, not allowing the Tomcat7 user to create a 'log' directory in there in the first place.
To fix it, simply
sudo chown tomcat7:tomcat7 /var/lib/tomcat7
Hope it helps, Sekm
精彩评论