Issue1655
Created on 2010-09-22.17:51:27 by root@127.0.0.1, last changed 2010-10-15.01:17:47 by zyasoft.
| Messages | |||
|---|---|---|---|
| msg6086 (view) | Author: root (root@127.0.0.1) | Date: 2010-09-22.17:51:25 | |
I have a tomcat webapp that use Jython as scripting language (thank you!).
I run python script periodically and I use logging to save debug output to syslog.
When I start tomcat and execute the first time a python script that use logging, it work perfectly.
If I try to run the same script again, nothing is sent to the log handler anymore.
I tried all log level on many different log handler.
If I use an other script that use logging too, nothing appears.
I need to restart tomcat to be able to send log again.
If I change logging handler, from let say, syslog to a rotating file WITHOUT a tomcat restart. The handler will create the file, but nothing will be written into the file.
Like if a sub part of logging is impacted.
I asked m developers to use Jython in a way that everything is reset at each invocation of jython.
It's plugged into the webapp this way:
public void executeScriptFile(File scriptFile, Map<String, Object> parameterMap, OutputStream stdoutOutputStream, OutputStream stderrOutputStream) throws Exception {
PythonInterpreter pythonInterpreter = new PythonInterpreter();
pythonInterpreter.setErr(stderrOutputStream);
pythonInterpreter.setOut(stdoutOutputStream);
// I think there is some constant not shown here
// but I think you can understand what they wanted to do here
for (Map.Entry<String, Object> entry : parameterMap.entrySet()) {
if (!entry.getKey().equals(PYTHON_SCRIPT_FILE_NAME_PARAMETER)) {
pythonInterpreter.set(entry.getKey(), entry.getValue());
}
}
pythonInterpreter.execfile(scriptFile.getPath());
pythonInterpreter.cleanup();
PyStringMap pyStringMap = (PyStringMap)pythonInterpreter.getLocals();
pyStringMap.clear();
}
I do not know if the problem is in the way jython is invoked or in the library itself.
Sorry, I'm a python developer, not a Java developer, I did not wrote the java part, so I might be confused about the java specific stuff.
|
|||
| msg6120 (view) | Author: Jim Baker (zyasoft) | Date: 2010-10-03.05:39:20 | |
You should create a new PySystemState and pass it to the constructor of PythonInterpreter. This should enable you to have a separate instance of the logging module. |
|||
| msg6167 (view) | Author: Jim Baker (zyasoft) | Date: 2010-10-15.01:17:46 | |
Closing this issue as a support issue. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2010-10-15 01:17:47 | zyasoft | set | status: open -> closed messages: + msg6167 |
| 2010-10-03 05:39:21 | zyasoft | set | nosy:
+ zyasoft messages: + msg6120 |
| 2010-09-22 17:51:27 | root@127.0.0.1 | create | |
Supported by Python Software Foundation,
Powered by Roundup