3
3
import os
4
4
import requests
5
5
import multiprocessing
6
+ import shutil
7
+ import tempfile
6
8
import traceback
7
9
8
10
from flask import Flask , Response , request , jsonify , make_response
@@ -75,7 +77,14 @@ def get_document_worker(config, permitted_resources, template, args, format):
75
77
max_memory = config .get ('max_memory' , '1024M' )
76
78
app .logger .info ("The maximum Java heap size is set to '%s'" , max_memory )
77
79
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 ())
79
88
80
89
report_compiler = ReportCompiler (app .logger )
81
90
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):
89
98
jpype .shutdownJVM ()
90
99
app .logger .debug ("Shutdown JVM" )
91
100
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
+
92
113
return result
93
114
94
115
0 commit comments