mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2025-06-28 09:16:55 +00:00
35 lines
1.7 KiB
Python
35 lines
1.7 KiB
Python
"""
|
|
Dashboard Logger Class
|
|
"""
|
|
import sqlite3, os, uuid
|
|
|
|
class DashboardLogger:
|
|
def __init__(self, CONFIGURATION_PATH):
|
|
self.loggerdb = sqlite3.connect(os.path.join(CONFIGURATION_PATH, 'db', 'wgdashboard_log.db'),
|
|
isolation_level=None,
|
|
check_same_thread=False)
|
|
self.loggerdb.row_factory = sqlite3.Row
|
|
self.__createLogDatabase()
|
|
self.log(Message="WGDashboard started")
|
|
def __createLogDatabase(self):
|
|
with self.loggerdb:
|
|
loggerdbCursor = self.loggerdb.cursor()
|
|
existingTable = loggerdbCursor.execute("SELECT name from sqlite_master where type='table'").fetchall()
|
|
existingTable = [t['name'] for t in existingTable]
|
|
if "DashboardLog" not in existingTable:
|
|
loggerdbCursor.execute(
|
|
"CREATE TABLE DashboardLog (LogID VARCHAR NOT NULL, LogDate DATETIME DEFAULT (strftime('%Y-%m-%d %H:%M:%S','now', 'localtime')), URL VARCHAR, IP VARCHAR, Status VARCHAR, Message VARCHAR, PRIMARY KEY (LogID))")
|
|
if self.loggerdb.in_transaction:
|
|
self.loggerdb.commit()
|
|
|
|
def log(self, URL: str = "", IP: str = "", Status: str = "true", Message: str = "") -> bool:
|
|
try:
|
|
loggerdbCursor = self.loggerdb.cursor()
|
|
loggerdbCursor.execute(
|
|
"INSERT INTO DashboardLog (LogID, URL, IP, Status, Message) VALUES (?, ?, ?, ?, ?);", (str(uuid.uuid4()), URL, IP, Status, Message,))
|
|
loggerdbCursor.close()
|
|
self.loggerdb.commit()
|
|
return True
|
|
except Exception as e:
|
|
print(f"[WGDashboard] Access Log Error: {str(e)}")
|
|
return False |