def logsetup(app):
global _setup_done
if _setup_done:
return
_setup_done = True
logging.setLoggerClass(ContextAwareLogger)
syslog_path = '/dev/log'
if sys.platform == 'darwin':
syslog_path = '/var/run/syslog'
# Install log file handler
handler = SysLogHandler(address=syslog_path, facility=SysLogHandler.LOG_USER)
handler.name = "serverlog"
handler.setFormatter(ServerLogFormatter())
logging.root.addHandler(handler)
# Install eventLog file handler
handler = SysLogHandler(address=syslog_path, facility=SysLogHandler.LOG_LOCAL0)
handler.name = "eventlog"
handler.setFormatter(EventLogFormatter())
l = logging.getLogger("eventlog")
l.propagate = False
l.addHandler(handler)
# Install client file handler
handler = SysLogHandler(address=syslog_path, facility=SysLogHandler.LOG_LOCAL1)
handler.name = "clientlog"
handler.setFormatter(ClientLogFormatter())
l = logging.getLogger("clientlog")
l.propagate = False
l.addHandler(handler)
# Quiet down copule of very chatty loggers. This can be overridden in config.json.
for logger_name in ['sqlalchemy', 'werkzeug', 'requests.packages.urllib3.connectionpool']:
logging.getLogger(logger_name).setLevel('WARNING')
# Apply additional 'level' and 'propagate' settings for handlers and
# loggers. See https://docs.python.org/2.7/library/logging.config.html#
# Example format:
# "logging": {
# "version": 1,
# "incremental": true,
# "loggers": {
# "my_chatty_logger": {
# "level": "WARNING"
# }
# },
# "handlers": {
# "serverlog": {
# "level": "INFO",
# }
# }
# }
if 'logging' in app.config:
logging.config.dictConfig(app.config['logging'])
评论列表
文章目录