簡體   English   中英

Tomcat 在 Spring 啟動時出現 Logback 的 War 部署錯誤

[英]Tomcat War Deployment Error with Logback in Spring Boot

我已經使用 Spring Boot 設置了 logback。 當我使用“mvn package”時,它會在 logback-spring.xml 中指定的指定位置創建日志文件但是當我將戰爭部署到 Tomcat 管理器時,我在 tomcat 日志文件中收到以下錯誤。

02-Jan-2023 19:36:45.008 INFO [http-nio-8080-exec-100] org.apache.catalina.core.ApplicationContext.log HTMLManager: start: Starting web application '/springapp'
02-Jan-2023 19:36:47.131 SEVERE [http-nio-8080-exec-100] org.apache.catalina.core.ApplicationContext.log HTMLManager: Error starting [/springapp]
    org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/springapp]]
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
        ...
        ...
        ...
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE-ROLLING] - openFile(springapp.log,true) call failed. java.io.FileNotFoundException: springapp.log (Permission denied)
        at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:344)
        ...
        ...
        ...
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5211)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        ... 35 more
    Caused by: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE-ROLLING] - openFile(springapp.log,true) call failed. java.io.FileNotFoundException: springapp.log (Permission denied)
        at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)
        at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
        at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
        at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
        at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:329)
        ... 56 more
02-Jan-2023 19:36:47.131 INFO [http-nio-8080-exec-100] org.apache.catalina.core.ApplicationContext.log HTMLManager: list: Listing contexts for virtual host 'localhost

Tomcat 安裝在 /opt/tomcat/apache-tomcat-version/ 我的日志文件目的地是 /opt/tomcat/applogs/ 具有權限

drwxr-xr-x 9 tomcat tomcat 4096 Dec  8 14:02 apache-tomcat-9.0.70
drwxrwxrwx 2 tomcat tomcat 4096 Jan  2 19:35 applogs

我嘗試將 user:groups 更改為 {whoami}:{whoami}、root:root 等,但 tomcat 經理不會啟動戰爭部署

FAIL - Application at context path [/springapp] could not be started
FAIL - Encountered exception [org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/springapp]]]

我知道已經創建的日志來自 spring 引導,與 tomcat 無關,而且我也知道 tomcat 出於安全目的需要專門的用戶,但此時我不知道該怎么做。

您指定的日志目錄權限不足,應用沒有寫入權限。

你可以使用chmod 777 dir給那個目錄完全訪問權限,或者在配置文件中指定一個有訪問權限的目錄

暫無
暫無

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

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