diff --git a/update-server-mock/build.gradle b/update-server-mock/build.gradle
index ef1f5e31bc82..692861f2fc02 100644
--- a/update-server-mock/build.gradle
+++ b/update-server-mock/build.gradle
@@ -10,6 +10,8 @@ apply plugin: 'kotlin'
repositories { jcenter() }
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.+"
+ compile "org.apache.logging.log4j:log4j-api:2.+"
+ runtime "org.apache.logging.log4j:log4j-core:2.+"
testCompile "junit:junit:4.+"
testCompile "org.assertj:assertj-core:3.+"
}
diff --git a/update-server-mock/log4j.xml b/update-server-mock/log4j.xml
new file mode 100644
index 000000000000..2e4483adb2f7
--- /dev/null
+++ b/update-server-mock/log4j.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/update-server-mock/src/main/java/com/intellij/updater/mock/Server.kt b/update-server-mock/src/main/java/com/intellij/updater/mock/Server.kt
index 930efcc25892..d2b0c1cfb236 100644
--- a/update-server-mock/src/main/java/com/intellij/updater/mock/Server.kt
+++ b/update-server-mock/src/main/java/com/intellij/updater/mock/Server.kt
@@ -16,6 +16,7 @@
package com.intellij.updater.mock
import com.sun.net.httpserver.HttpServer
+import org.apache.logging.log4j.LogManager
import java.net.HttpURLConnection.*
import java.net.InetSocketAddress
import java.net.URI
@@ -24,6 +25,7 @@ import java.time.format.DateTimeFormatter
class Server(private val port: Int, private val generator: Generator) {
private val server = HttpServer.create()
+ private val log = LogManager.getLogger(Server::class.java)
private val buildFormat = "([A-Z]+)-([0-9.]+)".toRegex()
private val tsFormat = DateTimeFormatter.ofPattern("dd/MMM/yyyy:kk:mm:ss ZZ")
@@ -35,18 +37,23 @@ class Server(private val port: Int, private val generator: Generator) {
process(ex.requestMethod, ex.requestURI)
}
catch(e: Exception) {
- e.printStackTrace()
+ log.error(e)
Response(HTTP_INTERNAL_ERROR, "Internal error")
}
- val contentType = if (response.type.startsWith("text/")) response.type + "; charset=utf-8" else response.type
- ex.responseHeaders.add("Content-Type", contentType)
- ex.sendResponseHeaders(response.code, response.bytes.size.toLong())
- ex.responseBody.write(response.bytes)
- ex.close()
+ try {
+ val contentType = if (response.type.startsWith("text/")) "${response.type}; charset=utf-8" else response.type
+ ex.responseHeaders.add("Content-Type", contentType)
+ ex.sendResponseHeaders(response.code, response.bytes.size.toLong())
+ ex.responseBody.write(response.bytes)
+ ex.close()
- println("${ex.remoteAddress.address.hostAddress} - - [${tsFormat.format(ZonedDateTime.now())}]" +
- " \"${ex.requestMethod} ${ex.requestURI}\" ${ex.responseCode} ${response.bytes.size}")
+ log.info("${ex.remoteAddress.address.hostAddress} - - [${tsFormat.format(ZonedDateTime.now())}]" +
+ " \"${ex.requestMethod} ${ex.requestURI}\" ${ex.responseCode} ${response.bytes.size}")
+ }
+ catch(e: Exception) {
+ log.error(e)
+ }
}
server.start()
diff --git a/update-server-mock/src/main/java/com/intellij/updater/mock/main.kt b/update-server-mock/src/main/java/com/intellij/updater/mock/main.kt
index 4fb8d90b3084..a2cc4997ebbe 100644
--- a/update-server-mock/src/main/java/com/intellij/updater/mock/main.kt
+++ b/update-server-mock/src/main/java/com/intellij/updater/mock/main.kt
@@ -15,13 +15,24 @@
*/
package com.intellij.updater.mock
+import org.apache.logging.log4j.LogManager
+
fun main(args: Array) {
if (args.size != 1) {
println("usage: java -jar update-server-mock.jar ")
System.exit(1)
}
- val port = args[0].toInt()
- val generator = Generator()
- Server(port, generator).start()
+ val log = LogManager.getLogger(Server::class.java)
+ val port = args[0]
+ try {
+ log.info("starting the server on port '$port' ...")
+ val generator = Generator()
+ Server(port.toInt(), generator).start()
+ log.info("ready")
+ }
+ catch(e: Exception) {
+ log.error("failed to start the server", e)
+ System.exit(2)
+ }
}
\ No newline at end of file