mirror of
https://github.com/Derpy-Leggies/OnlyLegs.git
synced 2025-01-06 06:46:11 +00:00
112 lines
2.9 KiB
Python
112 lines
2.9 KiB
Python
import logging
|
|
import os
|
|
from datetime import datetime
|
|
import platformdirs
|
|
|
|
# Prevent werkzeug from logging
|
|
logging.getLogger('werkzeug').disabled = True
|
|
|
|
|
|
class logger:
|
|
def innit_logger():
|
|
filepath = os.path.join(platformdirs.user_config_dir('onlylegs'), 'logs')
|
|
#filename = f'onlylogs_{datetime.now().strftime("%Y%m%d")}.log'
|
|
filename = 'only.log'
|
|
|
|
if not os.path.isdir(filepath):
|
|
os.mkdir(filepath)
|
|
|
|
logging.basicConfig(
|
|
filename=os.path.join(filepath, filename),
|
|
level=logging.INFO,
|
|
datefmt='%Y-%m-%d %H:%M:%S',
|
|
format=
|
|
'%(asctime)s %(levelname)s %(name)s %(threadName)s : %(message)s',
|
|
encoding='utf-8')
|
|
|
|
"""
|
|
Login and Auth error codes
|
|
--------------------------
|
|
100: Login
|
|
101: Login attempt
|
|
102: Login attempt (password error)
|
|
103: Logout
|
|
104: Registration
|
|
105: Auth error
|
|
|
|
Account error codes - User actions
|
|
----------------------------------
|
|
200: Account password reset
|
|
201: Account email change
|
|
202: Account delete
|
|
203: Account error
|
|
|
|
Image error codes
|
|
-----------------
|
|
300: Image upload
|
|
301: Image delete
|
|
302: Image edit
|
|
303: Image error
|
|
|
|
Group error codes
|
|
-----------------
|
|
400: Group create
|
|
401: Group delete
|
|
402: Group edit
|
|
403: Group error
|
|
|
|
User error codes - Admin actions
|
|
--------------------------------
|
|
500: User delete
|
|
501: User edit
|
|
502: User ban
|
|
503: User unban
|
|
504: User permission change
|
|
505: User error
|
|
|
|
Server and Website errors - Internal
|
|
------------------------------------
|
|
600: Server error
|
|
601: Server crash
|
|
602: Website error
|
|
603: Website crash
|
|
604: Maintenance
|
|
605: Startup
|
|
606: Other
|
|
621: :3
|
|
"""
|
|
|
|
def add(error, message):
|
|
# Allowed error codes, as listed above
|
|
log_levels = [
|
|
100, 101, 102, 103, 104, 105, 200, 201, 202, 203, 300, 301, 302,
|
|
303, 400, 401, 402, 403, 500, 501, 502, 503, 504, 505
|
|
]
|
|
|
|
if error in log_levels:
|
|
logging.log(logging.INFO, f'[{error}] {message}')
|
|
else:
|
|
logging.log(logging.WARN, f'[606] Improper use of error code {error}')
|
|
|
|
def server(error, message):
|
|
log_levels = {
|
|
600: logging.ERROR,
|
|
601: logging.CRITICAL,
|
|
602: logging.ERROR,
|
|
603: logging.CRITICAL,
|
|
604: logging.DEBUG,
|
|
605: logging.DEBUG,
|
|
606: logging.INFO,
|
|
621: logging.INFO,
|
|
}
|
|
|
|
if error in log_levels:
|
|
logging.log(log_levels[error], f'[{error}] {message}')
|
|
else:
|
|
logging.log(logging.WARN, f'[606] Invalid error code {error}')
|
|
|
|
def filename():
|
|
handler = logging.getLogger().handlers[0]
|
|
filename = handler.baseFilename
|
|
|
|
return filename |