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

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

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

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

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

使用上述 cmd,日志会被下载,但应用程序正在写入日志的当前日志文件不会被下载,因为它当前处于写锁定状态并被进程锁定。

我已经尝试从 log4j2 切换到 slf4j。但同样的情况也会发生。将不会下载最新的日志文件。一旦停止网络应用程序,我就可以毫无问题地下载最新的日志文件。

有什么方法可以完成以下任一操作吗? 1. 也可以使用相同的“az webapp log download”cmd 下载最新的日志文件,而无需停止 Web 应用程序? 2.或者,有没有一种方法可以让我在打开应用程序日志记录时直接写入Azure Web App自己生成的日志文件。 3. 有没有办法通过 Spring Boot 将自定义日志写入 Azure 存储 Blob?

最佳答案

针对此类要求,我们有以下选择。

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

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

关于java - 如何在Azure应用程序日志中记录Java/Spring Boot应用程序生成的自定义应用程序日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56274274/

相关文章:

java - Spring Boot 日志记录 - 每个日志条目开头的无关连字符

java - TreeRangeMap时间和空间复杂度

java - 如何在android中使用符号验证用户名和密码?

java - 字符串格式和 NullPointerException

java - 创建名为 'org.springframework.scheduling.annotation.proxyasyncconfiguration' 的 bean 时出错

java - 在 log4j 2 中使用 throwable 和参数

java - 在 Android 上启动 Activity 并共享数据

spring - 没有从字符串值 ('1074' 反序列化的字符串参数构造函数/工厂方法)

java - JVM 进程如何分配内存?

mysql - 我无法读取mysql二进制日志