Приложение Insights log4j appender не выходит - PullRequest
0 голосов
/ 30 августа 2018

Я пытался отправить журналы моего консольного приложения scala в Application Insights с помощью приложения Insights log4j v1.2 appender. Он работает, как и ожидалось, но в конце приложение не закрывается. Есть ли какое-либо соединение, которое мне нужно закрыть для выхода из приложения? Может кто-нибудь помочь мне с этим вопросом? Я не могу использовать 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

Спасибо

1 Ответ

0 голосов
/ 04 сентября 2018

JavaEE / Spring MVC приложения автоматически отключают ThreadPool. В вашем случае вы должны запустить его самостоятельно, когда приложение должно выйти:

SDKShutdownActivity.INSTANCE.stopAll()
...