【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
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑的更多相关文章
- 【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
问题描述 参考官方文档部署 PHP Laravel 项目到App Service for Linux环境中,但是访问应用时候遇见了500 Server Error 错误. 从部署的日志中,可以明确看出 ...
- 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法
问题定义 使用Azure应用服务(App Service),部署Java应用,使用Tomcat容器,如何自定义错误页面呢?同时禁用DELETE, PUT方法 解决办法 如何自定义错误页面呢?需要在 J ...
- 【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
问题情形 当应用在Azure 应用服务App Service中运行时,有时候出现CPU,Memory很高,但是没有明显的5XX错误和异常日志,有时就是有异常但是也不能明确的指出具体的代码错误.当面临这 ...
- 【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
问题描述 App Service for Linux 资源创建完成后,通过FTP方式把 .jar包(logdemo.jar)包上传到 /site/wwwroot/ 文件夹后,在App Service的 ...
- 【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
问题描述 在PHP项目部署在App Service后,上传文件如果大于1MB就会遇见 413 Request Entity Too Large 的问题. 问题解决 目前这个问题,首先需要分析应用所在的 ...
- 【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
问题描述 在上篇博文"[Azure 应用服务]App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)"中,实现了通过 HT ...
- 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...
- 【Azure 应用服务】App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)
问题描述 使用 python websockets 模块作为Socket的服务端,发布到App Service for Linux环境后,发现Docker Container无法启动.错误消息为: 2 ...
- 【Azure 应用服务】Python flask 应用部署在Aure App Service 遇见的 3 个问题
在App Service(Windows)中部署Flask应用时的注意事项: ● 添加Python扩展插件,Python 3.6.4 x64: ●● 配置 FastCGI 处理程序,添加Web.con ...
随机推荐
- vuex前端工程化之动态导入文件--require.context( )
随着项目的复杂,文件结构越来越多,Store中modules中的文件也越来越多,如果一个一个加载是不是很麻烦呢? 先看一个项目中store项目结构: 过去都是通过import分别引入文件: 1 imp ...
- Jupyter Notebook 修改字体和大小
1 打开这个目录 D:\SoftWare\Anaconda\Lib\site-packages\notebook\static\custom 点开这个 也就是你安装的 python下面的 jupyte ...
- form表单提交失败
在使用一个登录/注册模板的时候,发现form表单不了,但是删除模板引用的js后就正常了,查看js文件的源码,有一个 const firstForm = document.getElementById( ...
- Django学习day12随堂笔记
每日测验 """ 1.什么是cookie和session,你能描述一下它们的由来和工作机制吗(切勿糊弄,敷衍了事) 2.django中如何操作cookie和session ...
- php在类中使用回调函数 如array_map
<?php class foo { var $var; function bar() { array_map(array($this, "baz"), ar ...
- C# 将PPT转为OFD/DPT/DPS/ODP/POTX/UOP
本文分享在C#代码程序中,如何将PPT幻灯片文档转换为多种文件格式,如:OFD.DPT.DPS.ODP.POTX.UOP等.只需在加载PPT幻灯片源文档后,调用ppt.SaveToFile(strin ...
- php安全 过滤、验证、转义
不要相信外部源 $_GET $_POST $_REQUEST $_COOKIE $argv php://stdin php://input file_get_contents() 远程数据库 远程ap ...
- Hive On Spark保姆级攻略
声明: 此博客参考了官网的配置方式,并结合笔者在实践网上部分帖子时的踩坑经历整理而成 这里贴上官方配置说明: [官方]: https://cwiki.apache.org//confluence/di ...
- @Valid注解的一点理解
@Valid注解存在于spring-boot-starter-web包下,只要项目中存在该依赖就无需自行导入,也就是说该注解适用于springboot项目此注解用于表单验证,简化了判断代码用法:格式如 ...
- join方法个人理解
首先抛出对join的疑问 如果我有一个a线程,一个b线程 那此时 a.start(); b.start(); a.join(); b.join(); 是否意思是a线程先执行完,然后再执行b线程; 如果 ...