2015-09-26 70 views
0

我在最近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> 
+0

當您啓動應用程序時,您是否在控制檯上看到任何錯誤?可能是文件系統訪問權限問題。 – luboskrnac

+0

我用maven在windows(war)中部署它,然後打開VPS(SSH-FTP),我將war文件轉移到webapps文件夾中,然後我重新啓動tomcat7服務。你認爲可能是文件系統訪問權限?我該如何解決這個問題?在我運行web應用程序之前創建文件和chmod? –

+1

'chown'或'chmod'可以解決文件訪問問題。 catalina.out文件是否爲您的應用程序運行創建?看看那裏。如果Tomcat不能寫在那裏,我相信它會嘗試寫入控制檯'stdout'。因此,嘗試查看Tomcat日誌或以某種方式捕獲它的輸出。 – luboskrnac

回答

0

評論中的通信表明它是文件訪問問題。

chownchmod可以解決文件訪問問題。查看catalina.out文件是否在您的應用運行的某個位置創建。如果是的話,看看那裏。

如果Tomcat不能寫在那裏,我相信它會嘗試寫入控制檯stdout。因此,請嘗試查看Tomcat日誌或以某種方式捕獲其輸出。