[loggers]
keys = root, yagi, winchester, oahu

[handlers]
keys = stderr, stdout, watchedfile, syslog, null

[formatters]
keys = yagi, default

[logger_root]
level = WARNING
handlers = null

[logger_yagi]
level = DEBUG
handlers = stderr
qualname = yagi

[logger_winchester]
level = DEBUG
handlers = stderr
qualname = winchester

[logger_oahu]
level = DEBUG
handlers = stderr
qualname = oahu

[logger_amqplib]
level = WARNING
handlers = stderr
qualname = amqplib

[logger_sqlalchemy]
# yagi does not use sqlalchemy... yet. -mdragon
level = WARNING
handlers = stderr
qualname = sqlalchemy
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARNING" logs neither.  (Recommended for production systems.)

[handler_stderr]
class = StreamHandler
args = (sys.stderr,)
formatter = yagi

[handler_stdout]
class = StreamHandler
args = (sys.stdout,)
formatter = yagi

[handler_watchedfile]
class = handlers.WatchedFileHandler
args = ('sandbox.log',)
formatter = yagi

[handler_syslog]
class = handlers.SysLogHandler
args = ('/dev/log', handlers.SysLogHandler.LOG_USER)
formatter = yagi

[handler_null]
class = NullHandler
formatter = default
args = ()

[formatter_yagi]
# substitutions available for formats are documented at:
# https://docs.python.org/2/library/logging.html#logrecord-attributes
#format = %(name)s[%(levelname)s at %(asctime)s line: %(lineno)d] %(message)s
format = %(name)s[%(levelname)s line: %(lineno)d] %(message)s

[formatter_default]
format = %(message)s