【Azure 應用服務】App Service For Linux 部署Java Spring Boot應用后,查看日志文件時的疑惑


編寫Java Spring Boot應用,通過配置logging.path路徑把日志輸出在指定的文件夾中。

第一步:通過VS Code創建一個空的Spring Boot項目

 

第二步:在application.properties中添加輸入日志的級別和指定路徑

logging.path=mylogs
logging.level.root= INFO
logging.level.org.springframework.web= INFO
logging.level.org.springframework.security= INFO
logging.level.org.hibernate= INFO

 

第三步:在代碼中添加logging對象初始化代碼,為了簡單,就在main方法中添加日志

package com.example;

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {
    private static final Logger logger = LoggerFactory.getLogger(App.class);  

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);

 logger.info("test java logs  : info"); logger.error("test java logs  : error"); logger.warn("test java logs  : warn"); logger.trace("test java logs  : trace" );
        
    }
}

 

第四步:VS Code中運行並查看輸出日志 

(注:在Debug的前,出現了 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.ValidationException 錯誤,原因是在缺少了 javax.xml.bind 依賴。在pom.xml中添加以下內容即可解決。

        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>

 

第五步:通過VS Code發布Java應用到App Service For Linux中( App Service 可以提前創建好,也可以發布時創建)

注:發布時候,打包.JAR包時候,如果出現Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project logdemo: Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags錯誤,是由於 lombok 的版本不匹配問題,如在示例中使用的為

 <lombok.version>1.14.8</lombok.version>

需要修改為:

 <lombok.version>1.18.22</lombok.version>

 

但是當以上代碼發布到App Service For Linux中后,如何查看日志呢?在程序根目錄下沒有發現任何日志。那么 日志去那里呢?

 

 

最后

雖然沒有能在LogFiles中發現Spring Boot項目中自定義的mylogs文件夾, 在多次修改日志文件路徑為Linux下的 logging.file.name=/home/LogFiles/MySpringlogtest.log 依舊沒有發現日志文件。

但是在App Service自動生成的 xxxx_default_docker.log 文件和在Application問價夾中的 spring日志中,發現了在代碼中自定義輸出的日志內容。

 

雖然自定義的設置沒有生效,最終還是看見了需要的日志文件。就把這個疑問帶在心中,在未來中尋找答案。

 

示例代碼,可在此處下載

 

參考資料

快速入門:在 Azure 應用服務中創建 Java 應用: https://docs.azure.cn/zh-cn/app-service/quickstart-java?tabs=javase&pivots=platform-linux

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM