Skip to content

Commit 7f107a7

Browse files
committed
Capture JVM logs and read a logging.properties file
1 parent 22f35a4 commit 7f107a7

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/server.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import os
44
import requests
55
import multiprocessing
6+
import shutil
7+
import tempfile
68
import traceback
79

810
from flask import Flask, Response, request, jsonify, make_response
@@ -75,7 +77,14 @@ def get_document_worker(config, permitted_resources, template, args, format):
7577
max_memory = config.get('max_memory', '1024M')
7678
app.logger.info("The maximum Java heap size is set to '%s'", max_memory)
7779

78-
jpype.startJVM("-DJava.awt.headless=true", "-Xmx" + max_memory, classpath=classpath)
80+
tmpdir = tempfile.mkdtemp()
81+
jpype.startJVM("-DJava.awt.headless=true", "-Xmx" + max_memory, "-Djava.util.logging.config.file=" + os.path.join(libdir, "logging.properties"), classpath=classpath)
82+
jpype.java.lang.System.setOut(jpype.java.io.PrintStream(jpype.java.io.File(os.path.join(tmpdir, "stdout"))))
83+
jpype.java.lang.System.setErr(jpype.java.io.PrintStream(jpype.java.io.File(os.path.join(tmpdir, "stderr"))))
84+
85+
LogFactory = jpype.JPackage('org').apache.commons.logging.LogFactory
86+
log = LogFactory.getLog("TestLogger")
87+
print("Logging implementation:", log.getClass().getName())
7988

8089
report_compiler = ReportCompiler(app.logger)
8190
result = report_compiler.get_document(config, permitted_resources, template, dict(request.args), format)
@@ -89,6 +98,18 @@ def get_document_worker(config, permitted_resources, template, args, format):
8998
jpype.shutdownJVM()
9099
app.logger.debug("Shutdown JVM")
91100

101+
try:
102+
with open(os.path.join(tmpdir, "stdout")) as fh:
103+
app.logger.debug("JVM stdout:\n" + fh.read())
104+
except:
105+
pass
106+
try:
107+
with open(os.path.join(tmpdir, "stderr")) as fh:
108+
app.logger.debug("JVM stderr:\n" + fh.read())
109+
except:
110+
pass
111+
shutil.rmtree(tmpdir)
112+
92113
return result
93114

94115

0 commit comments

Comments
 (0)