2017-08-07 41 views
0

當您創建Tomcat嵌入式JAR文件並將其安裝在服務器上時,如何訪問異常?最近我的服務器和進程突然停止,我不知道發生了什麼。我檢查了Windows事件查看器,但找不到任何東西。 有沒有什麼地方例外在文件上寫入異常?如何登錄彈出引導jar文件異常

+0

查找到您的TOMCAT_HOME catalina.out的文件/ logs目錄 – Jens

+0

@Jens其中是TOMCAT_HOME? – Kenji

+0

這取決於你在哪裏安裝它 – Jens

回答

1

默認情況下,春季啓動只登錄到控制檯並不會 寫入日誌文件。如果除了 控制檯輸出之外您還想寫日誌文件,您需要設置日誌記錄文件logging.path屬性 (例如在您的application.properties中)。

java -Dlogging.file=target/my_logfile.log -jar spring_boot_app.jar 
or 
java -Dlogging.path=target/logs -jar spring_boot_app.jar 
(Will create spring.log file inside target/logs) 

編號:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-logging-file-output

爲了讓生活更輕鬆,你可以使用logback.xml的logback-spring.xml

以下是logback.xml的樣本。將其包含在src/main/resources目錄中。

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

<configuration scan="true"> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 

<!-- The FILE and ASYNC appenders are here as examples for a production configuration --> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern> 
      <maxHistory>90</maxHistory> 
     </rollingPolicy> 
     <encoder> 
      <charset>utf-8</charset> 
      <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern> 
     </encoder> 
    </appender> 

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> 
     <queueSize>512</queueSize> 
     <appender-ref ref="FILE"/> 
    </appender> 


    <!-- your project package --> 
    <logger name="com.test" level="INFO"/> 

    <!-- <logger name="javax.activation" level="WARN"/> 
    <logger name="javax.mail" level="WARN"/> 
    <logger name="javax.xml.bind" level="WARN"/> 
    <logger name="ch.qos.logback" level="WARN"/> 
    <logger name="com.codahale.metrics" level="WARN"/> 
    <logger name="com.ryantenney" level="WARN"/> 
    <logger name="com.sun" level="WARN"/> 
    <logger name="com.zaxxer" level="WARN"/> 
    <logger name="io.undertow" level="WARN"/> 
    <logger name="io.undertow.websockets.jsr" level="ERROR"/> 
    <logger name="org.apache" level="WARN"/> 
    <logger name="org.apache.catalina.startup.DigesterFactory" level="OFF"/> 
    <logger name="org.bson" level="WARN"/> 
    <logger name="org.hibernate.validator" level="WARN"/> 
    <logger name="org.hibernate" level="WARN"/> 
    <logger name="org.hibernate.ejb.HibernatePersistence" level="OFF"/> 
    <logger name="org.springframework" level="WARN"/> 
    <logger name="org.springframework.web" level="WARN"/> 
    <logger name="org.springframework.security" level="WARN"/> 
    <logger name="org.springframework.cache" level="WARN"/> 
    <logger name="org.thymeleaf" level="WARN"/> 
    <logger name="org.xnio" level="WARN"/> 
    <logger name="springfox" level="WARN"/> 
    <logger name="sun.rmi" level="WARN"/> 
    <logger name="liquibase" level="WARN"/> 
    <logger name="LiquibaseSchemaResolver" level="INFO"/> 
    <logger name="sun.rmi.transport" level="WARN"/> --> 

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> 
     <resetJUL>true</resetJUL> 
    </contextListener> 

    <root level="INFO"> 
     <appender-ref ref="CONSOLE"/> 
     <appender-ref ref="FILE"/> 
    </root> 

</configuration> 

以上配置將產生日誌與名稱的JAR文件的工作目錄一樣logFile.yyyy.MM.dd.log

+0

我得到第一部分,它是作品。爲了更好的生活,我想用第二部分的答案。如果可以的話,只需在資源中使用logback.xml命名文件的代碼? – Kenji

+0

是的,我測試了它最新的春季啓動'1.5.6'。它應該工作。請將您的項目的基礎包替換爲'com.test'。 – 11thdimension

+0

使用logback.xml vs @mike adamenko的答案有什麼好處。我的意思是簡單地把3行屬性? – Kenji

1

您應該在您的類路徑中添加application.properties文件並在其中設置日誌記錄屬性。

如果您需要伐木唯一的變化是設置的 各種記錄器的水平,那麼你可以做的是,在使用 的「logging.level」前綴application.properties,例如

logging.level.org.springframework.web=DEBUG 
logging.level.org.hibernate=ERROR 
logging.file=C:\myapplication.log 

您也可以使用「logging.file」設置文件的位置登錄,以(除 控制檯)。

here

+0

如何將文件放入jar文件的根目錄? – Kenji

+0

jar是一個簡單的zip壓縮文件。順便說一句,你可以將它添加到你的類路徑中。更新了答案。 –

+0

它會記錄logging.file = mylogfile.log,它將保存在JAR根目錄下。謝謝你的回答很有用。 – Kenji