Remove uses of log4j in DevIdeaBuildServer

GitOrigin-RevId: 1c0426959faaf458b51ddc3bcceb2e85b3d356cc
This commit is contained in:
Dmitry Jemerov
2021-12-30 16:16:58 +01:00
committed by intellij-monorepo-bot
parent 636aeb041f
commit f68f782f67

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
@file:Suppress("ReplaceGetOrSet")
package org.jetbrains.intellij.build.devServer
@@ -8,11 +8,11 @@ import com.intellij.openapi.util.io.FileUtil
import com.sun.net.httpserver.HttpContext
import com.sun.net.httpserver.HttpExchange
import com.sun.net.httpserver.HttpServer
import org.apache.log4j.ConsoleAppender
import org.apache.log4j.Level
import org.apache.log4j.PatternLayout
import org.apache.log4j.helpers.AbsoluteTimeDateFormat
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.io.PrintWriter
import java.io.StringWriter
import java.net.HttpURLConnection
import java.net.InetAddress
import java.net.InetSocketAddress
@@ -20,9 +20,14 @@ import java.net.URI
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
import java.util.*
import java.util.concurrent.CountDownLatch
import java.util.concurrent.Executors
import java.util.concurrent.Semaphore
import java.util.logging.ConsoleHandler
import java.util.logging.Formatter
import java.util.logging.Level
import java.util.logging.LogRecord
import kotlin.io.path.createDirectories
import kotlin.system.exitProcess
@@ -57,11 +62,7 @@ class DevIdeaBuildServer {
@JvmStatic
fun main(args: Array<String>) {
// avoiding "log4j:WARN No appenders could be found"
System.setProperty("log4j.defaultInitOverride", "true")
val root = org.apache.log4j.Logger.getRootLogger()
root.level = Level.INFO
root.addAppender(ConsoleAppender(PatternLayout("%d{ABSOLUTE} %m%n")))
initLog()
try {
start()
@@ -72,6 +73,27 @@ class DevIdeaBuildServer {
}
}
private fun initLog() {
val root = java.util.logging.Logger.getLogger("")
root.level = Level.INFO
val handlers = root.handlers
for (handler in handlers) {
root.removeHandler(handler)
}
root.addHandler(ConsoleHandler().apply {
formatter = object : Formatter() {
override fun format(record: LogRecord): String {
val timestamp = AbsoluteTimeDateFormat().format(Date.from(record.instant))
return "$timestamp ${record.message}\n" + (record.thrown?.let { thrown ->
StringWriter().also {
thrown.printStackTrace(PrintWriter(it))
}.toString()
} ?: "")
}
}
})
}
private fun start() {
val buildServer = BuildServer(homePath = getHomePath())