Spring MVC Log4j - Linux
问题描述:
我在最近2天面临一个问题,无论如何我都无法弄清楚! 我想从appenders exprort日志文件到我的主目录或其他地方,我可以找到它,在windows工作完美我可以出口它在$ catalina.home或绝对路径的其他地方,但在Linux(Ubuntu的)我试了一切,没有工作,有人帮我请Spring MVC Log4j - Linux
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="logs_info" class="org.apache.log4j.RollingFileAppender">
<param name="Threshold" value="INFO" />
<!-- <param name="file" value="${catalina.home}/logs/Gps_Zero/Logs_Info.log"
/> -->
<param name="file" value="/root/Desktop/log1.log" />
<param name="append" value="false" />
<param name="maxFileSize" value="10MB" /> <!-- 2 times - files * 10 mb -->
<param name="MaxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="logs_error" class="org.apache.log4j.RollingFileAppender">
<param name="Threshold" value="ERROR" />
<param name="file" value="/root/Desktop/log2.log" />
<param name="append" value="false" />
<param name="maxFileSize" value="10MB" /> <!-- 2 times - files * 10 mb -->
<param name="MaxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="html" class="org.apache.log4j.FileAppender">
<param name="file" value="/root/Desktop/log3.html" />
<param name="append" value="false" />
<layout class="org.apache.log4j.HTMLLayout">
<param name="Title" value="Application log" />
<param name="LocationInfo" value="true" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="console" />
<appender-ref ref="html" />
<appender-ref ref="logs_info" />
<appender-ref ref="logs_error" />
</root>
<logger name="org.hibernate">
<level value="info" />
</logger>
<logger name="org.hibernate.SQL">
<level value="info" />
</logger>
<logger name="org.hibernate.type">
<level value="info" />
</logger>
<logger name="org.springframework">
<level value="off" />
</logger>
</log4j:configuration>
答
评论中的通信表明它是文件访问问题。
chown
或chmod
可以解决文件访问问题。查看catalina.out文件是否在您的应用运行的某个位置创建。如果是的话,看看那里。
如果Tomcat不能写在那里,我相信它会尝试写入控制台stdout
。因此,请尝试查看Tomcat日志或以某种方式捕获其输出。
当您启动应用程序时,您是否在控制台上看到任何错误?可能是文件系统访问权限问题。 – luboskrnac
我用maven在windows(war)中部署它,然后打开VPS(SSH-FTP),我将war文件转移到webapps文件夹中,然后我重新启动tomcat7服务。你认为可能是文件系统访问权限?我该如何解决这个问题?在我运行web应用程序之前创建文件和chmod? –
'chown'或'chmod'可以解决文件访问问题。 catalina.out文件是否为您的应用程序运行创建?看看那里。如果Tomcat不能写在那里,我相信它会尝试写入控制台'stdout'。因此,尝试查看Tomcat日志或以某种方式捕获它的输出。 – luboskrnac