modification of code and loggger apply and changes of update from.

This commit is contained in:
2026-02-18 18:00:20 +05:30
parent 0ba78a0bd1
commit 63bcbeb9a2
12 changed files with 361 additions and 138 deletions

View File

@@ -1,22 +1,49 @@
import os
from flask import Flask, render_template, request, redirect, url_for, send_from_directory, flash, jsonify, json
from flask import current_app
import logging
from datetime import datetime
from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user
from flask import session, request, current_app
class LogHelper:
@staticmethod
def setup_logger(app):
if not os.path.exists("logs"):
os.makedirs("logs")
formatter = logging.Formatter("%(asctime)s | %(levelname)s | User:%(user)s | IP:%(ip)s | %(message)s")
file_handler = logging.FileHandler("logs/app.log")
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(formatter)
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)
app.logger.setLevel(logging.INFO)
app.logger.addHandler(file_handler)
app.logger.addHandler(stream_handler)
# ---------------------------------------
# Log User Activity
# ---------------------------------------
@staticmethod
def log_request():
if request.endpoint and "static" not in request.endpoint:
user = session.get("user", "Anonymous")
ip = request.remote_addr
current_app.logger.info(
f"{request.method} {request.path}",
extra={"user": user, "ip": ip}
)
# ---------------------------------------
# Custom Action Logging
# ---------------------------------------
@staticmethod
def log_action(action, details=""):
"""Log user actions with timestamp, user, action, and details."""
logData = LogData()
logData.WriteLog(action, details="")
class LogData:
filepath = ""
timestamp = None
def __init__(self):
self.filepath = os.path.join(current_app.root_path, 'activity.log')
self.timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
user = session.get("user", "Anonymous")
ip = request.remote_addr
current_app.logger.info(f"{action} | {details}",extra={"user": user, "ip": ip})