-d option, it's DEBUG, and it logs all environment for every request. I tried to set the root level to WARNING or higher, but it was either ignored or made logger totally silent. So the best option I found is to leave the root level to INFO and to use module loggers for application-specific DEBUG messages. In the __main__ function I added the following lines:logger=logging.getLogger("my")
logger.setLevel(logging.DEBUG)Every module has to get its own logger like this:# module engine.py
import logging
logger=logging.getLogger("my.engine")Because of the dot separator my.engine logger inherits the configuration of my logger, so DEBUG messages are printed on the console.I also did not find the correct way to add handlers to my logger, because if I change the logger initialization like this:
logger=logging.getLogger("my")
logger.setLevel(logging.DEBUG)
ch=logging.StreamHandler()
logger.addHandler(ch)It adds a new handler for every request, so each message is printed many times. Of course, it's possible to remove the handler after run_wsgi_app call, but it looked weird to add and immediately remove the handler every time. If you know a better way to configure logging with dev_appengine, please let me know.
No comments:
Post a Comment