On Aug 29, 2018, at 3:48 PM, Jeff Grimmett <grimmto...@gmail.com
<mailto:grimmto...@gmail.com>> wrote:
> I'm working on a Flask project using the flask_twisted package from PyPI and
> have encountered a mystery. I don't *have* to solve it to move on, but darn
> it, I can't let it go :)
>
> https://pypi.org/project/Flask-Twisted/
> <https://pypi.org/project/Flask-Twisted/>
> https://github.com/cravler/flask-twisted/
> <https://github.com/cravler/flask-twisted/>
>
> So here's the breakdown: when use the standard logging module to output to a
> logfile + stdout, everything is fine. I do see some logging output from
> Twisted as well (the web server part) but for the most part life is groovy.
>
> I'm going to be integrating in a wxPython windows app to this (previously
> it's been a shell app) and step 1 was to make my own stdout handler that
> eventually would pipe all that stuff to a window in the wx app. The first
> step of THAT (step 1.a) was to replace all the logging stuff with print()
> placeholders.
Why would you do this rather than simply handle logging events? Both twisted
and the stdlib have mechanisms for adding observers that will give you access
to more structured information - particularly useful if you are trying to
display something in a GUI.
> At that point, things got confusing, as now ALL of my print()s are being
> handled by Twisted's logging handler.
This (sort of) makes sense...
> I brought flask-twisted in local to my code so I could monkey around with it.
> First thing I noticed was that it was using twisted.python.log. I messed
> around with that - commented it out, and now I get no stdout output at all.
> Set the parameter setStdout to False, same thing.
So, this is the old, legacy API, and what you want to use is this:
https://twistedmatrix.com/documents/current/api/twisted.logger.LogBeginner.beginLoggingTo.html
<https://twistedmatrix.com/documents/current/api/twisted.logger.LogBeginner.beginLoggingTo.html>
But it doesn’t make sense to me that you would see no output at all, or that
setStdout=False would swallow your print statements.
> The adapter code uses twisted.internet.reactor, threads,
> twisted.web.server.Site, twisted.web.wsgi.WSGIResource, and
> twisted.web.resource.Resource, any one which might be responsible. I spent
> yesterday evening digging around but haven't found anything yet.
The only thing starting logging here appears to be flask-twisted; we only start
logging in twist & twistd, within twisted itself.
> Any guidance / ideas?
I'm very curious what is going on here, and whether it's a logging system bug.
Could you whittle this down to a minimal reproducer?
-glyph
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python