Skip to content
Snippets Groups Projects
Commit f398e3bf authored by Ethan2.Clay@live.uwe.ac.uk's avatar Ethan2.Clay@live.uwe.ac.uk
Browse files

Implemented a logger with associated handlers and streams for different logging types

parent fa098485
No related branches found
No related tags found
No related merge requests found
......@@ -18,8 +18,9 @@ def create_app(config_class=Config):
#Only enabled when DEVELOPMENT_MODE in .env is set to true
development_mode = os.getenv("DEVELOPMENT_MODE")
print(development_mode)
if (development_mode.lower() == 'true'):
#if (development_mode.lower() == 'true'):
app.config['DEBUG'] = True
load_dotenv()
......@@ -57,7 +58,7 @@ def create_app(config_class=Config):
if __name__ == "__main__":
app.run(use_reloader=True)
app.run(use_reloader=True, debug=True)
login_manager.login_view = 'profile.login'
login_manager.init_app(app)
......@@ -81,3 +82,6 @@ def register_blueprints(app):
module = __import__(f'app.{module_name}', fromlist=['bp'])
app.register_blueprint(module.bp, url_prefix=url_prefix)
import logging
import os
from .config import LOG_FORMAT, LOG_LEVELS, LOG_DIR
class LoggerConfig:
def __init__(self, logs_dir=LOG_DIR):
self.logs_dir = logs_dir
self.ensure_logs_dir_exists()
def ensure_logs_dir_exists(self):
if not os.path.exists(self.logs_dir):
os.makedirs(self.logs_dir)
def setup_logger(self, name, log_file='error.log', level=logging.DEBUG):
log_file_path = os.path.join(self.logs_dir, log_file)
logger = logging.getLogger(name)
logger.setLevel(level)
file_handler = logging.FileHandler(log_file_path)
console_handler = logging.StreamHandler()
file_handler.setLevel(level)
console_handler.setLevel(level)
formatter = logging.Formatter(LOG_FORMAT)
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
return logger
# Create different loggers here
logger_config = LoggerConfig()
app_logger = logger_config.setup_logger('app', log_file='app.log', level=LOG_LEVELS['debug'])
db_logger = logger_config.setup_logger('db', log_file='db.log', level=LOG_LEVELS['info'])
auth_logger = logger_config.setup_logger('auth', log_file='auth.log', level=LOG_LEVELS['warning'])
import logging
# Define logging formats
LOG_FORMAT = '%(asctime)s %(name)s : %(levelname)s - %(message)s'
# Define log levels
LOG_LEVELS = {
'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'error': logging.ERROR,
'critical': logging.CRITICAL,
}
# Default log directory
LOG_DIR = 'logs'
......@@ -5,6 +5,7 @@ from werkzeug.security import generate_password_hash, check_password_hash
from app.models import User
from app import db
from flask_login import login_user, logout_user, login_required, current_user
from app.logger import app_logger
@bp.route('/signup')
def signup():
......@@ -56,6 +57,7 @@ def login():
@login_required
@bp.route('/home')
def index():
app_logger.error("Logger accessed on profile page")
if current_user.is_authenticated:
return render_template('profile/index.html', username=current_user.username)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment