Я пытался отправить журналы моего консольного приложения 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")
}
}
Спасибо