如何将Java / Spring Boot应用程序生成的自定义应用程序日志记录到Azure应用程序日志中?

时间:2019-05-23 11:31:38

标签: java spring-boot logging azure-web-sites azure-web-app-service

我有一个Spring Boot应用程序,该应用程序使用log4j2在Azure Web App中的“ D:/ home / LogFiles / azurefileapp /”文件夹中创建一个日志文件。该应用程序可以将日志正确写入此文件夹,而不会出现任何问题。

我现在遇到的问题是,我想与其他无法访问Azure门户的开发人员共享这些日志。我想为他们提供下面的cmd,以下载这些日志(使用Service Principal)。

az webapp日志下载--resource-group --name

在cmd以上的位置,日志将被下载,但是应用正在写入日志的当前日志文件将无法下载,因为它当前处于写入锁定状态并且已被进程锁定。

我已经尝试从log4j2切换到slf4j。但是,同样的事情发生了。最新的日志文件将不会下载。停止该Web应用程序后,我可以下载最新的日志文件,而不会出现任何问题。

有什么方法可以完成以下任何一项操作? 1.是否也可以使用相同的“ az webapp日志下载” cmd在不停止Web应用程序的情况下下载最新的日志文件? 2.否则,有没有一种方法可以在我们打开应用程序日志记录时直接写入Azure Web App本身生成的日志文件。 3.是否可以通过Spring Boot将自定义日志写入Azure存储Blob?

1 个答案:

答案 0 :(得分:0)

对于这种要求,我们有以下选择。

  • 使用Spring Boot的Splunk
  • 带有Spring Boot的ELK堆栈
  • 带有Spring Boot的Zipkin
  • 带有Spring Boot的Logstash

可能还有更多。对于Pivotal Cloud Foundary,可以选择使用Loggregator,如果Azure中有类似功能,则可以利用。