import datetime from extensions import db from models import ServerLog def log_action(action): """ Log an action to the server log database """ try: new_log = ServerLog(action=action) db.session.add(new_log) db.session.commit() print(f"Logged action: {action}") except Exception as e: print(f"Error logging action: {e}") db.session.rollback() def get_recent_logs(limit=20): """ Get the most recent log entries """ return ServerLog.query.order_by(ServerLog.timestamp.desc()).limit(limit).all() # Helper functions for common log actions def log_upload(file_type, file_name, target_type, target_name): log_action(f"{file_type.upper()} file '{file_name}' uploaded for {target_type} '{target_name}'") def log_process(file_type, file_name, target_type, target_name): log_action(f"{file_type.upper()} file '{file_name}' processed for {target_type} '{target_name}'") def log_player_created(username, hostname): log_action(f"Player '{username}' with hostname '{hostname}' was created") def log_player_edited(username): log_action(f"Player '{username}' was edited") def log_player_deleted(username): log_action(f"Player '{username}' was deleted") def log_group_created(name): log_action(f"Group '{name}' was created") def log_group_edited(name): log_action(f"Group '{name}' was edited") def log_group_deleted(name): log_action(f"Group '{name}' was deleted") def log_user_created(username, role): log_action(f"User '{username}' with role '{role}' was created") def log_user_role_changed(username, new_role): log_action(f"User '{username}' role changed to '{new_role}'") def log_user_deleted(username): log_action(f"User '{username}' was deleted") def log_content_deleted(content_name, target_type, target_name): log_action(f"Content '{content_name}' removed from {target_type} '{target_name}'") def log_settings_changed(setting_name): log_action(f"Setting '{setting_name}' was changed") def log_files_cleaned(count): log_action(f"{count} unused files were cleaned from storage")