Logging, again...

49 views
Skip to first unread message

Vlad K.

unread,
Sep 11, 2012, 6:41:34 PM9/11/12
to pylons-...@googlegroups.com

Hi all,

I'm having a bit of an issue with logging. I did this (a trick I picked up from a site to enable logging under uwsgi):


__init__.py
--------------------
def main(global_config, **settings):
    """ Main WSGI application.
    """
    logging.config.fileConfig(settings["logging.config"])
....


development.ini
--------------------
logging.config = %(here)s/development.ini

...


# Begin logging configuration

[loggers]
keys = root,sqlalchemy

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = DEBUG
handlers = console

[logger_sqlalchemy]
level = INFO
handlers =
qualname = sqlalchemy.engine
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARN" logs neither.  (Recommended for production systems.)

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s

# End logging configuration

Now, if I include logging.config.fileConfig() line in __init__ I have to specifically enable loggers for namespaces in development.ini, the root logger won't catch all. For example, I've disabled debugtoolbar in dev, and in case of exceptions I get nothing on the console unless I add a [logger_waitress] section (with logger key set, qualname, etc...).

If I remove that line (basically, disable logging configuration), logging under Waitress shows root logger catching all (that is not overriden).


What am I doing wrong?


-- 


.oO V Oo.


Work Hard,
Increase Production,
Prevent Accidents,
and
Be Happy!  ;)

Philip Jenvey

unread,
Sep 14, 2012, 2:12:03 PM9/14/12
to pylons-...@googlegroups.com
It's not apparent to me what's wrong. With a root logger set to DEBUG you should probably be seeing those messages. You may want to try using the logging_tree package as a visual aid:

http://pypi.python.org/pypi/logging_tree

--
Philip Jenvey

Marius Gedminas

unread,
Sep 16, 2012, 1:46:57 AM9/16/12
to pylons-...@googlegroups.com
On Wed, Sep 12, 2012 at 12:41:34AM +0200, Vlad K. wrote:
> Hi all,
>
> I'm having a bit of an issue with logging. I did this (a trick I
> picked up from a site to enable logging under uwsgi):
>
>
> __init__.py
> --------------------
> def main(global_config, **settings):
> """ Main WSGI application.
> """
> logging.config.fileConfig(settings["logging.config"])

Would your issue go away if you tried

logging.config.fileConfig(settings["logging.config"],
disable_existing_loggers=False)

?


> Now, if I include logging.config.fileConfig() line in __init__ I
> have to specifically enable loggers for namespaces in
> development.ini, the root logger won't catch all. For example, I've
> disabled debugtoolbar in dev, and in case of exceptions I get
> nothing on the console unless I add a [logger_waitress] section
> (with logger key set, qualname, etc...).

Yeah, sounds like you hit this:
http://mg.pov.lt/blog/logging-fileconfig-gotcha.html

Marius Gedminas
--
Given enough eyeballs all bugs are shallow.
-- Eric S. Raymond, "The Cathedral and the Bazaar"
signature.asc

Vlad K.

unread,
Sep 17, 2012, 8:04:19 AM9/17/12
to pylons-...@googlegroups.com
On 09/16/2012 07:46 AM, Marius Gedminas wrote:
> Yeah, sounds like you hit this:
> http://mg.pov.lt/blog/logging-fileconfig-gotcha.html

Yes, that's it. My google-fu must have failed me. :)

Thanks a lot, that fixed my problem!
Reply all
Reply to author
Forward
0 new messages