Skip to content
Snippets Groups Projects
Commit 2af74db4 authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Make it possible to configure different log levels for stderr and file logging

parent e2c68a1a
No related branches found
No related tags found
No related merge requests found
...@@ -121,10 +121,6 @@ NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI= ...@@ -121,10 +121,6 @@ NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI=
# DEFAULT: %Y-%m-%d %H:%M:%S # DEFAULT: %Y-%m-%d %H:%M:%S
# NOPAQUE_LOG_DATE_FORMAT= # NOPAQUE_LOG_DATE_FORMAT=
# DEFAULT: <nopaque-basedir>/logs
# NOTE: Use `.` as <nopaque-basedir>
# NOPAQUE_LOG_DIR=
# DEFAULT: [%(asctime)s] %(levelname)s in %(pathname)s (function: %(funcName)s, line: %(lineno)d): %(message)s # DEFAULT: [%(asctime)s] %(levelname)s in %(pathname)s (function: %(funcName)s, line: %(lineno)d): %(message)s
# NOPAQUE_LOG_FORMAT= # NOPAQUE_LOG_FORMAT=
...@@ -132,9 +128,25 @@ NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI= ...@@ -132,9 +128,25 @@ NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI=
# CHOOSE ONE: CRITICAL, ERROR, WARNING, INFO, DEBUG # CHOOSE ONE: CRITICAL, ERROR, WARNING, INFO, DEBUG
# NOPAQUE_LOG_LEVEL= # NOPAQUE_LOG_LEVEL=
# CHOOSE ONE: False, True
# DEFAULT: True
# NOPAQUE_LOG_FILE_ENABLED=
# DEFAULT: <nopaque-basedir>/logs
# NOTE: Use `.` as <nopaque-basedir>
# NOPAQUE_LOG_FILE_DIR=
# DEFAULT: NOPAQUE_LOG_LEVEL
# CHOOSE ONE: CRITICAL, ERROR, WARNING, INFO, DEBUG
# NOPAQUE_LOG_FILE_LEVEL=
# CHOOSE ONE: False, True # CHOOSE ONE: False, True
# DEFAULT: False # DEFAULT: False
# NOPAQUE_LOG_TO_STDOUT= # NOPAQUE_LOG_STDERR_ENABLED=
# DEFAULT: NOPAQUE_LOG_LEVEL
# CHOOSE ONE: CRITICAL, ERROR, WARNING, INFO, DEBUG
# NOPAQUE_LOG_STDERR_LEVEL=
# DEFAULT: 0 # DEFAULT: 0
# Number of values to trust for X-Forwarded-For # Number of values to trust for X-Forwarded-For
......
...@@ -51,18 +51,24 @@ class Config: ...@@ -51,18 +51,24 @@ class Config:
NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI = \ NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI = \
os.environ.get('NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI') os.environ.get('NOPAQUE_SOCKETIO_MESSAGE_QUEUE_URI')
NOPAQUE_LOG_DATE_FORMAT = os.environ.get('NOPAQUE_LOG_DATE_FORMAT', NOPAQUE_LOG_DATE_FORMAT = \
'%Y-%m-%d %H:%M:%S') os.environ.get('NOPAQUE_LOG_DATE_FORMAT', '%Y-%m-%d %H:%M:%S')
NOPAQUE_LOG_DIR = os.environ.get('NOPAQUE_LOG_DIR',
os.path.join(basedir, 'logs'))
NOPAQUE_LOG_FORMAT = os.environ.get( NOPAQUE_LOG_FORMAT = os.environ.get(
'NOPAQUE_LOG_DATE_FORMAT', 'NOPAQUE_LOG_DATE_FORMAT',
'[%(asctime)s] %(levelname)s in ' '[%(asctime)s] %(levelname)s in '
'%(pathname)s (function: %(funcName)s, line: %(lineno)d): %(message)s' '%(pathname)s (function: %(funcName)s, line: %(lineno)d): %(message)s'
) )
NOPAQUE_LOG_LEVEL = os.environ.get('NOPAQUE_LOG_LEVEL', 'INFO') NOPAQUE_LOG_LEVEL = os.environ.get('NOPAQUE_LOG_LEVEL', 'INFO')
NOPAQUE_LOG_TO_STDOUT = \ NOPAQUE_LOG_FILE_ENABLED = \
os.environ.get('NOPAQUE_LOG_TO_STDOUT', 'false').lower() == 'true' os.environ.get('NOPAQUE_LOG_FILE_ENABLED', 'true').lower() == 'true'
NOPAQUE_LOG_FILE_DIR = \
os.environ.get('NOPAQUE_LOG_FILE_DIR', os.path.join(basedir, 'logs'))
NOPAQUE_LOG_FILE_LEVEL = \
os.environ.get('NOPAQUE_LOG_FILE_LEVEL', NOPAQUE_LOG_LEVEL)
NOPAQUE_LOG_STDERR_ENABLED = \
os.environ.get('NOPAQUE_LOG_STDERR_ENABLED', 'false').lower() == 'true'
NOPAQUE_LOG_STDERR_LEVEL = \
os.environ.get('NOPAQUE_LOG_STDERR_LEVEL', NOPAQUE_LOG_LEVEL)
NOPAQUE_PROXY_FIX_X_FOR = \ NOPAQUE_PROXY_FIX_X_FOR = \
int(os.environ.get('NOPAQUE_PROXY_FIX_X_FOR', '0')) int(os.environ.get('NOPAQUE_PROXY_FIX_X_FOR', '0'))
...@@ -79,30 +85,31 @@ class Config: ...@@ -79,30 +85,31 @@ class Config:
def init_app(cls, app): def init_app(cls, app):
# Set up logging according to the corresponding (NOPAQUE_LOG_*) # Set up logging according to the corresponding (NOPAQUE_LOG_*)
# configurations # configurations
# ... But first remove all existing handlers app.logger.setLevel(app.config.get('NOPAQUE_LOG_LEVEL'))
# Remove existing handlers
for handler in app.logger.handlers: for handler in app.logger.handlers:
app.logger.removeHandler(handler) app.logger.removeHandler(handler)
# Setup handlers
formatter = logging.Formatter( formatter = logging.Formatter(
fmt=app.config.get('NOPAQUE_LOG_FORMAT'), fmt=app.config.get('NOPAQUE_LOG_FORMAT'),
datefmt=app.config.get('NOPAQUE_LOG_DATE_FORMAT') datefmt=app.config.get('NOPAQUE_LOG_DATE_FORMAT')
) )
if app.config.get('NOPAQUE_LOG_TO_STDOUT'): if app.config.get('NOPAQUE_LOG_STDERR_ENABLED'):
stream_handler = logging.StreamHandler() stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter) stream_handler.setFormatter(formatter)
stream_handler.setLevel(app.config.get('NOPAQUE_LOG_LEVEL')) stream_handler.setLevel(app.config.get('NOPAQUE_LOG_STDERR_LEVEL'))
app.logger.addHandler(stream_handler) app.logger.addHandler(stream_handler)
else: if app.config.get('NOPAQUE_LOG_FILE_ENABLED'):
if not os.path.exists(app.config.get('NOPAQUE_LOG_DIR')): if not os.path.exists(app.config.get('NOPAQUE_LOG_FILE_DIR')):
os.mkdir(app.config.get('NOPAQUE_LOG_DIR')) os.mkdir(app.config.get('NOPAQUE_LOG_FILE_DIR'))
rotating_file_handler = RotatingFileHandler( rotating_file_handler = RotatingFileHandler(
os.path.join(app.config.get('NOPAQUE_LOG_DIR'), 'nopaque.log'), os.path.join(app.config.get('NOPAQUE_LOG_FILE_DIR'), 'nopaque.log'), # noqa
maxBytes=10240, maxBytes=10240,
backupCount=10 backupCount=10
) )
rotating_file_handler.setFormatter(formatter) rotating_file_handler.setFormatter(formatter)
rotating_file_handler.setLevel(app.config.get('NOPAQUE_LOG_LEVEL')) rotating_file_handler.setLevel(app.config.get('NOPAQUE_LOG_FILE_LEVEL')) # noqa
app.logger.addHandler(rotating_file_handler) app.logger.addHandler(rotating_file_handler)
app.logger.setLevel(app.config.get('NOPAQUE_LOG_LEVEL'))
# Set up and apply the ProxyFix middleware according to the # Set up and apply the ProxyFix middleware according to the
# corresponding (NOPAQUE_PROXY_FIX_*) configurations # corresponding (NOPAQUE_PROXY_FIX_*) configurations
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment