簡體   English   中英

Spring啟動應用程序意外關閉並記錄問題

[英]Spring boot application shutting down unexpectedly and log issues

我有一個使用spring boot 1.5.6.RELEASE開發的Web應用程序。 該應用程序目前正在為兩個服務器上運行的~3000個用戶的用戶群提供服務。

我的問題是當我關閉新版本的應用程序並在運行一小時左右后自動啟動新版本時,應用程序會自動關閉。 我可以在日志中看到關閉掛鈎的日志,但沒有其他錯誤。

2018-07-12 05:46:40.100 DEBUG --- [Thread-7] ldowOMApplication : !!!!!!!!!!! application shutdown !!!!!!!!!!!

當我再次啟動實例時,它會一直運行,直到我隨意關機,在高負載下沒有任何問題。 我通過向應用程序發送一個kill信號並等待進程存在(正常關閉)來關閉應用程序。

我想確定問題的位置,在實際問題出現之前,我認為我的日志存在問題。 我有業務需求的自定義日志配置。 我的錯誤日志無法正常工作,並在錯誤日志中,即使我已配置為記錄錯誤級別,我可以看到所有其他日志都在那里打印。 我的配置如下。

```

<property name="LOG_DIR" value="logs/om"/>
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />

<appender name="auditLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/audit.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/audit-%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>

<!--<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/all.log}"/>-->
<!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->

<appender name="trace" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/request-trace.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/request-trace-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %-40.40c{1.} : %m%n</pattern>
    </encoder>
</appender>


<appender name="REPOSITORY_PERF" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/repository-perf.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/repository-perf-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>
<appender name="CONTROLLER_PERF" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/controller-perf.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/controller-perf-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>
<appender name="INTEGRATION_PERF" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/integration-perf.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/integration-perf-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>
<appender name="SERVICE_PERF" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/service-perf.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/service-perf-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>

<appender name="ERROR_LOG_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/error.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/error-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>

<!--spring log appender-->

<appender name="SPRING_LOG_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/spring.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/spring-%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>

<appender name="ORDER_LOG_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/order.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/order-%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>

<appender name="TRACKED_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_DIR}/tracked.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_DIR}/tracked-%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %mdc --- [%t] %C{1} : %m%n</pattern>
    </encoder>
</appender>

<logger name="lk.ravinda.om" level="debug">
    <appender-ref ref="SPRING_LOG_APPENDER"/>
</logger>

<logger name="org.springframework" level="debug">
    <appender-ref ref="SPRING_LOG_APPENDER"/>
</logger>

<logger name="org.apache" level="error">
    <appender-ref ref="SPRING_LOG_APPENDER"/>
</logger>

<logger name="lk.ravinda.crm.repositoryutil.aspects" level="off">
    <appender-ref ref="SPRING_LOG_APPENDER"/>
</logger>

<logger name="lk.ravinda.om.crm.impl" level="INFO">
    <appender-ref ref="ORDER_LOG_APPENDER"/>
</logger>
<!--end spring log appender config-->


<logger name="SERVICE" level="debug">
    <appender-ref ref="SERVICE_PERF"/>
</logger>
<logger name="CONTROLLER" level="debug">
    <appender-ref ref="CONTROLLER_PERF"/>
</logger>
<logger name="INTEGRATION" level="debug">
    <appender-ref ref="INTEGRATION_PERF"/>
</logger>
<logger name="REPOSITORY" level="debug">
    <appender-ref ref="REPOSITORY_PERF"/>
</logger>

<logger name="auditLog" level="debug">
    <appender-ref ref="auditLogAppender"/>
</logger>

<logger name="TRACKED_LOGGER" level="debug">
    <appender-ref ref="TRACKED_APPENDER"/>
</logger>

<logger name="org.springframework" level="error">
    <appender-ref ref="ERROR_LOG_APPENDER"/>
</logger>

<logger name="com" level="error">
    <appender-ref ref="ERROR_LOG_APPENDER"/>
</logger>

<logger name="lk.ravinda" level="error">
    <appender-ref ref="ERROR_LOG_APPENDER"/>
</logger>

<logger name="trace" level="debug">
    <appender-ref ref="trace"/>
</logger>

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

```

我懷疑在spring.log和spring.log中不會打印出與彈簧相關的錯誤。

感謝任何評論意見,以找到關閉應用程序的問題。

至於日志沒有出現 - 看起來你必須為同一類別“org.springframework”指定appender的元素,我不認為Log4J會將兩者結合起來。 你可能應該有一個元素用於該類別,其中包含兩個appender,然后在每個appender中配置“threshold”屬性,以便一個只有錯誤級別的消息,而另一個包括一切到調試級別...

我在這里看到了這個: http//ibswings.blogspot.com/2009/03/log4j-configuration-controlling-logging.html

而不是自定義日志在spring boot中使用預配置的log4j配置嘗試一次。 在application.properties文件中使用:logging.level。{application package name} = ERROR

{application package name},例如com.xyz.myapplication。 主類存在的包。 希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM