【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑 - LuBu0505/My-Code GitHub Wiki

编写Java Spring Boot应用,通过配置logging.path路径把日志输出在指定的文件夹中。

第一步:通过VS Code创建一个空的Spring Boot项目

vscode create java spring project.gif

第二步:在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 spring and check log.gif (注:在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 可以提前创建好,也可以发布时创建)

deploy to app service.gif 注:发布时候,打包.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中后,如何查看日志呢?在程序根目录下没有发现任何日志。那么 日志去那里呢? 2021102902.png

最后

虽然没有能在LogFiles中发现Spring Boot项目中自定义的mylogs文件夹, 在多次修改日志文件路径为Linux下的 logging.file.name=/home/LogFiles/MySpringlogtest.log 依旧没有发现日志文件。

但是在App Service自动生成的 xxxx_default_docker.log 文件和在Application问价夹中的 spring日志中,发现了在代码中自定义输出的日志内容。 2021102903.png

虽然自定义的设置没有生效,最终还是看见了需要的日志文件。就把这个疑问带在心中,在未来中寻找答案。

示例代码,可在此处下载

参考资料

快速入门:在 Azure 应用服务中创建 Java 应用: https://docs.azure.cn/zh-cn/app-service/quickstart-java?tabs=javase&pivots=platform-linux

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

分类: 【Azure 应用服务】

标签: VS Code发布应用为App Service For Linux使用VS CODE调试Java代码Spring Boot 创建App Service查看应用中Java Spring日志

⚠️ **GitHub.com Fallback** ⚠️