For the curious, it looks like the culprit is Flask's logging features. I'm not entirely sure what all is happening, but it's clear from docs and code (and a lot of unresolved Stack Overflow threads) that it's hijacking stdout in a way that is confusing to many. Looks like the best approach is to not let it use its defaults for logging (which I was doing initially until I decided to be "clever") - explicitly configure logging so that you can control its behavior explicitly as well.
Its internal logging uses the python native logging, so once I get that squared away I can focus on wrangling the Twisted logger as well. Regards, Jeff On Tue, Sep 11, 2018 at 6:33 PM Jeff Grimmett <grimmto...@gmail.com> wrote: > > Hi, Glyph, > > On Wed, Sep 5, 2018 at 3:27 AM Glyph <gl...@twistedmatrix.com> wrote: > >> >> >> On Aug 29, 2018, at 3:48 PM, Jeff Grimmett <grimmto...@gmail.com> wrote: >> >> 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. >> > > That's a little more blam than this little script really needs, though I > appreciate the suggestion. > > >> 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 >> > > Yeah. Also noted when I saw it. Again, seemed to be more effort than I > wanted, though if someone were to say "well, that's what you're stuck with > if you use that legacy stuff" I'd be off to do the thing. > > >> 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? >> > > The sad part is that when I went to put together the minimal reproducer, > the problem went away. > > There is something in my code somewhere that is causing this. I have no > idea what it is, yet, but when I put together a minimal web server that > uses twisted.reactor.callLater() to periodically start a background task, > Twisted is not grabbing stdout or even pushing its own logging to sdtout. > > I think it might be how I set up the original project in my IDE - for the > sample project, I started with a clean directory and clean project file > (PyCharm if it matters). So I'm gonna pursue that further. I think that it > might be the IDE's environment if you tell it "this is a Flask project". I > was seeing weird things from the minimal example as well until I cleared > out all the IDE meta files and reinitiated it as a "pure Python" (in > PyCharm terms) project. > > Thanks for your time and thanks for the push that got me moving > (hopefully) in the right direction. :) > > Regards, > > Jeff >
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python