Я реализовал конечную точку flask, которая записывает строку в журнал:
@app.route("/")
@cross_origin()
def hi():
print("hi")
app.logger.info("hi2")
return "hi"
Если я вызываю flask из командной строки, затем нажимаю эту конечную точку из браузера, flask регистрирует строку, как я и ожидал:
$ FLASK_ENV=development python py/server.py
* Serving Flask app "server" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5001/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 223-046-607
hi
[2020-08-07 12:03:54,269] INFO in server: hi2
127.0.0.1 - - [07/Aug/2020 12:03:54] "GET / HTTP/1.1" 200 -
Вот моя наивная попытка захватить flask вывод от средства визуализации, вызвав метод on()
экземпляра PythonShell
:
function sendToPython_dev() {
let { PythonShell } = require('python-shell');
let options = {
mode: 'text'
};
let pythonShell = PythonShell.run('./py/server.py', options, function (err, results) {
if (err) throw err;
console.log('response: ', results);
});
// Attempt to capture flask logging output
pythonShell.on('message', function (message) {
console.log('flask', message);
});
}
Я вызываю его из командной строки вот так. К моему удивлению, я получаю первые три строки информации журнала, которые Flask генерирует при запуске, но не остальную часть инициализации, и я не вижу выходных данных журнала, когда я посещаю конечную точку в браузере:
$ FLASK_ENV=development ELECTRON_ENABLE_LOGGING=1 npm start
> my-app@1.0.0 start /home/projects/my-app
> electron-forge start
✔ Checking your system
✔ Locating Application
✔ Preparing native dependencies
✔ Launching Application
[14900:0807/120749.869098:VERBOSE1:CONSOLE(31)] "Main._createAppUI: 26.96875ms", source: devtools://devtools/bundled/main/main.js (31)
[14900:0807/120749.885893:VERBOSE1:CONSOLE(31)] "Main._showAppUI: 16.19482421875ms", source: devtools://devtools/bundled/main/main.js (31)
[14900:0807/120749.902785:INFO:CONSOLE(16)] "flask * Serving Flask app "server" (lazy loading)", source: file:///home/projects/my-app/src/renderer.js (16)
[14900:0807/120749.905309:INFO:CONSOLE(16)] "flask * Environment: development", source: file:///home/projects/my-app/src/renderer.js (16)
[14900:0807/120749.905424:INFO:CONSOLE(16)] "flask * Debug mode: on", source: file:///home/projects/my-app/src/renderer.js (16)
[14900:0807/120749.920625:VERBOSE1:CONSOLE(31)] "Main._initializeTarget: 10.156005859375ms", source: devtools://devtools/bundled/main/main.js (31)
[14900:0807/120750.021953:VERBOSE1:CONSOLE(31)] "Main._lateInitialization: 0.653076171875ms", source: devtools://devtools/bundled/main/main.js (31)
Что я делаю не так?