zoukankan      html  css  js  c++  java
  • 【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

     
     

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

  • 相关阅读:
    vue 开发环境搭建
    签名算法
    MySQL explain执行计划优化
    查看运行时某个java对象占用JVM大小及通过idea查看java的内存占用情况
    jenkins 配置
    CSS布局
    《JavaScript 代码优化指南》
    JavaScript 跨域漫游
    iFrame 功能详解
    粘性的底部布局
  • 原文地址:https://www.cnblogs.com/lulight/p/15482087.html
Copyright © 2011-2022 走看看