-
-
Notifications
You must be signed in to change notification settings - Fork 16.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
46 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# -*- coding: utf-8 -*- | ||
""" | ||
flask.logging | ||
~~~~~~~~~~~~~ | ||
Implements the logging support for Flask. | ||
:copyright: (c) 2010 by Armin Ronacher. | ||
:license: BSD, see LICENSE for more details. | ||
""" | ||
|
||
from __future__ import absolute_import | ||
|
||
from logging import getLogger, StreamHandler, Formatter, Logger, DEBUG | ||
|
||
|
||
def create_logger(app): | ||
"""Creates a logger for the given application. This logger works | ||
similar to a regular Python logger but changes the effective logging | ||
level based on the application's debug flag. Furthermore this | ||
function also removes all attached handlers in case there was a | ||
logger with the log name before. | ||
""" | ||
|
||
class DebugLogger(Logger): | ||
def getEffectiveLevel(x): | ||
return DEBUG if app.debug else Logger.getEffectiveLevel(x) | ||
|
||
class DebugHandler(StreamHandler): | ||
def emit(x, record): | ||
StreamHandler.emit(x, record) if app.debug else None | ||
|
||
handler = DebugHandler() | ||
handler.setLevel(DEBUG) | ||
handler.setFormatter(Formatter(app.debug_log_format)) | ||
logger = getLogger(app.logger_name) | ||
# just in case that was not a new logger, get rid of all the handlers | ||
# already attached to it. | ||
del logger.handlers[:] | ||
logger.__class__ = DebugLogger | ||
logger.addHandler(handler) | ||
return logger |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters