Call init_logs() function to add logging handlers. Move init_logs() into initialization vs logging. (#841)

* Closes #835 
* Move `utils.logging.init_logs()` into `utils.initialization`
This commit is contained in:
Kevin Chung
2019-01-19 13:43:29 -05:00
committed by GitHub
parent a181c0a1e2
commit f8607c3d5c
3 changed files with 46 additions and 44 deletions

View File

@@ -13,7 +13,7 @@ from CTFd import utils
from CTFd.utils.migrations import migrations, migrate, upgrade, stamp, create_database
from CTFd.utils.sessions import CachingSessionInterface
from CTFd.utils.updates import update_check
from CTFd.utils.initialization import init_request_processors, init_template_filters, init_template_globals
from CTFd.utils.initialization import init_request_processors, init_template_filters, init_template_globals, init_logs
from CTFd.utils.events import socketio
from CTFd.plugins import init_plugins
@@ -206,6 +206,7 @@ def create_app(config='CTFd.config.Config'):
app.register_error_handler(500, general_error)
app.register_error_handler(502, gateway_error)
init_logs(app)
init_plugins(app)
return app

View File

@@ -33,6 +33,8 @@ from CTFd.utils.config.visibility import (
from sqlalchemy.exc import InvalidRequestError, IntegrityError
import datetime
import logging
import os
def init_template_filters(app):
@@ -64,6 +66,48 @@ def init_template_globals(app):
app.jinja_env.globals.update(scores_visible=scores_visible)
def init_logs(app):
logger_submissions = logging.getLogger('submissions')
logger_logins = logging.getLogger('logins')
logger_registrations = logging.getLogger('registrations')
logger_submissions.setLevel(logging.INFO)
logger_logins.setLevel(logging.INFO)
logger_registrations.setLevel(logging.INFO)
log_dir = app.config['LOG_FOLDER']
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logs = {
'submissions': os.path.join(log_dir, 'submissions.log'),
'logins': os.path.join(log_dir, 'logins.log'),
'registrations': os.path.join(log_dir, 'registrations.log')
}
for log in logs.values():
if not os.path.exists(log):
open(log, 'a').close()
submission_log = logging.handlers.RotatingFileHandler(logs['submissions'], maxBytes=10000)
login_log = logging.handlers.RotatingFileHandler(logs['logins'], maxBytes=10000)
registration_log = logging.handlers.RotatingFileHandler(logs['registrations'], maxBytes=10000)
logger_submissions.addHandler(
submission_log
)
logger_logins.addHandler(
login_log
)
logger_registrations.addHandler(
registration_log
)
logger_submissions.propagate = 0
logger_logins.propagate = 0
logger_registrations.propagate = 0
def init_request_processors(app):
@app.context_processor
def inject_user():

View File

@@ -2,52 +2,9 @@ from flask import session
from CTFd.utils.user import get_ip
import logging
import logging.handlers
import os
import time
def init_logs(app):
logger_submissions = logging.getLogger('submissions')
logger_logins = logging.getLogger('logins')
logger_registrations = logging.getLogger('registrations')
logger_submissions.setLevel(logging.INFO)
logger_logins.setLevel(logging.INFO)
logger_registrations.setLevel(logging.INFO)
log_dir = app.config['LOG_FOLDER']
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logs = {
'submissions': os.path.join(log_dir, 'submissions.log'),
'logins': os.path.join(log_dir, 'logins.log'),
'registrations': os.path.join(log_dir, 'registrations.log')
}
for log in logs.values():
if not os.path.exists(log):
open(log, 'a').close()
submission_log = logging.handlers.RotatingFileHandler(logs['submissions'], maxBytes=10000)
login_log = logging.handlers.RotatingFileHandler(logs['logins'], maxBytes=10000)
registration_log = logging.handlers.RotatingFileHandler(logs['registrations'], maxBytes=10000)
logger_submissions.addHandler(
submission_log
)
logger_logins.addHandler(
login_log
)
logger_registrations.addHandler(
registration_log
)
logger_submissions.propagate = 0
logger_logins.propagate = 0
logger_registrations.propagate = 0
def log(logger, format, **kwargs):
logger = logging.getLogger(logger)
props = {