Application Insights log4j appender不会退出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Application Insights log4j appender不会退出相关的知识,希望对你有一定的参考价值。

我一直在尝试使用Application Insights log4j v1.2 appender将我的scala控制台应用程序的日志推送到Application Insights。它按预期工作,但最后,应用程序没有退出。是否有任何连接需要关闭才能退出应用程序?有人可以帮我解决这个问题吗?我不能使用System.exit(0)Thread.interrupt(),因为这会导致我的Spark应用程序在群集上失败。

以下是我的源代码:

AILogger.scala:

import org.apache.log4j.{ Logger, Level, MDC }
import java.time.LocalDateTime
import com.microsoft.applicationinsights.log4j.v1_2.ApplicationInsightsAppender

object AILogger {
  var rootLogger = Logger.getRootLogger()
  var ai = new ApplicationInsightsAppender()
  ai.setInstrumentationKey("Insert IKey here")
  ai.activateOptions()


  @transient lazy val logger = Logger.getLogger(this.getClass)
  logger.setLevel(Level.INFO)
  rootLogger.addAppender(ai)
  rootLogger.setLevel(Level.ERROR)

  def info(message: String): Unit = {
    logger.info(message)
  }
}

AILoggerTest.scala:

import java.time.LocalDateTime

object AILoggerTest {
  def main(args: Array[String]) {

    AILogger.info("logging to AI " + LocalDateTime.now())
    System.out.println("Completed")      
  }
}

enter image description here

谢谢

答案

JavaEE / Spring MVC应用程序自动关闭ThreadPool关闭。在你的情况下,你必须在应用程序退出时自己触发它:

SDKShutdownActivity.INSTANCE.stopAll()

以上是关于Application Insights log4j appender不会退出的主要内容,如果未能解决你的问题,请参考以下文章

我可以从 Powershell(可能通过 log4net)登录到 App Insights 吗?

API Application Insights 使用的良好实践

Application Insights 数据采样

ILogger 到 Application Insights

Application Insights URL 分组

Azure Application Insights 不显示数据