* By default local dev environments will be setup to send tracking
logs and application logs (DEBUG) to ENV_ROOT/log. Logs are rotated using the RotatingFileHandler * For non dev environments logging will continue to be handled by rsyslogd
This commit is contained in:
@@ -23,7 +23,8 @@ WIKI_ENABLED = True
|
||||
|
||||
LOGGING = get_logger_config(ENV_ROOT / "log",
|
||||
logging_env="dev",
|
||||
tracking_filename="tracking.log",
|
||||
local_loglevel="DEBUG",
|
||||
dev_env=True,
|
||||
debug=True)
|
||||
|
||||
DATABASES = {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import os
|
||||
import platform
|
||||
import sys
|
||||
from logging.handlers import SysLogHandler
|
||||
@@ -5,35 +6,49 @@ from logging.handlers import SysLogHandler
|
||||
|
||||
def get_logger_config(log_dir,
|
||||
logging_env="no_env",
|
||||
tracking_filename=None,
|
||||
tracking_filename="tracking.log",
|
||||
edx_filename="edx.log",
|
||||
dev_env=False,
|
||||
syslog_addr=None,
|
||||
debug=False,
|
||||
local_loglevel='INFO'):
|
||||
|
||||
"""Return the appropriate logging config dictionary. You should assign the
|
||||
"""
|
||||
|
||||
Return the appropriate logging config dictionary. You should assign the
|
||||
result of this to the LOGGING var in your settings. The reason it's done
|
||||
this way instead of registering directly is because I didn't want to worry
|
||||
about resetting the logging state if this is called multiple times when
|
||||
settings are extended."""
|
||||
settings are extended.
|
||||
|
||||
If dev_env is set to true logging will not be done via local rsyslogd,
|
||||
instead, tracking and application logs will be dropped in log_dir.
|
||||
|
||||
"tracking_filename" and "edx_filename" are ignored unless dev_env
|
||||
is set to true since otherwise logging is handled by rsyslogd.
|
||||
|
||||
"""
|
||||
|
||||
# Revert to INFO if an invalid string is passed in
|
||||
if local_loglevel not in ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']:
|
||||
local_loglevel = 'INFO'
|
||||
|
||||
hostname = platform.node().split(".")[0]
|
||||
syslog_format = ("[%(name)s][env:{logging_env}] %(levelname)s [{hostname} " +
|
||||
" %(process)d] [%(filename)s:%(lineno)d] - %(message)s").format(
|
||||
syslog_format = ("[%(name)s][env:{logging_env}] %(levelname)s "
|
||||
"[{hostname} %(process)d] [%(filename)s:%(lineno)d] "
|
||||
"- %(message)s").format(
|
||||
logging_env=logging_env, hostname=hostname)
|
||||
|
||||
handlers = ['console'] if debug else ['console', 'syslogger-remote',
|
||||
'syslogger-local', 'newrelic']
|
||||
handlers = ['console', 'local'] if debug else ['console',
|
||||
'syslogger-remote', 'local', 'newrelic']
|
||||
|
||||
return {
|
||||
logger_config = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False,
|
||||
'formatters': {
|
||||
'standard': {
|
||||
'format': '%(asctime)s %(levelname)s %(process)d [%(name)s] %(filename)s:%(lineno)d - %(message)s',
|
||||
'format': '%(asctime)s %(levelname)s %(process)d '
|
||||
'[%(name)s] %(filename)s:%(lineno)d - %(message)s',
|
||||
},
|
||||
'syslog_format': {'format': syslog_format},
|
||||
'raw': {'format': '%(message)s'},
|
||||
@@ -51,20 +66,6 @@ def get_logger_config(log_dir,
|
||||
'address': syslog_addr,
|
||||
'formatter': 'syslog_format',
|
||||
},
|
||||
'syslogger-local': {
|
||||
'level': local_loglevel,
|
||||
'class': 'logging.handlers.SysLogHandler',
|
||||
'address': '/dev/log',
|
||||
'formatter': 'syslog_format',
|
||||
'facility': SysLogHandler.LOG_LOCAL0,
|
||||
},
|
||||
'tracking': {
|
||||
'level': 'DEBUG',
|
||||
'class': 'logging.handlers.SysLogHandler',
|
||||
'address': '/dev/log',
|
||||
'facility': SysLogHandler.LOG_LOCAL1,
|
||||
'formatter': 'raw',
|
||||
},
|
||||
'newrelic': {
|
||||
'level': 'ERROR',
|
||||
'class': 'newrelic_logging.NewRelicHandler',
|
||||
@@ -99,3 +100,44 @@ def get_logger_config(log_dir,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
if dev_env:
|
||||
tracking_file_loc = os.path.join(log_dir, tracking_filename)
|
||||
edx_file_loc = os.path.join(log_dir, edx_filename)
|
||||
logger_config['handlers'].update({
|
||||
'local': {
|
||||
'class': 'logging.handlers.RotatingFileHandler',
|
||||
'level': local_loglevel,
|
||||
'formatter': 'standard',
|
||||
'filename': edx_file_loc,
|
||||
'maxBytes': 1024 * 1024 * 2,
|
||||
'backupCount': 5,
|
||||
},
|
||||
'tracking': {
|
||||
'level': 'DEBUG',
|
||||
'class': 'logging.handlers.RotatingFileHandler',
|
||||
'filename': tracking_file_loc,
|
||||
'formatter': 'raw',
|
||||
'maxBytes': 1024 * 1024 * 2,
|
||||
'backupCount': 5,
|
||||
},
|
||||
})
|
||||
else:
|
||||
logger_config['handlers'].update({
|
||||
'local': {
|
||||
'level': local_loglevel,
|
||||
'class': 'logging.handlers.SysLogHandler',
|
||||
'address': '/dev/log',
|
||||
'formatter': 'syslog_format',
|
||||
'facility': SysLogHandler.LOG_LOCAL0,
|
||||
},
|
||||
'tracking': {
|
||||
'level': 'DEBUG',
|
||||
'class': 'logging.handlers.SysLogHandler',
|
||||
'address': '/dev/log',
|
||||
'facility': SysLogHandler.LOG_LOCAL1,
|
||||
'formatter': 'raw',
|
||||
},
|
||||
})
|
||||
|
||||
return logger_config
|
||||
|
||||
Reference in New Issue
Block a user