1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-02 22:23:13 +00:00

Replace all logging

This commit is contained in:
wlinator 2024-06-21 21:58:42 +02:00
parent 5935e47808
commit 884833b535
15 changed files with 24 additions and 121 deletions

View file

@ -8,7 +8,6 @@ import Client
import config.parser import config.parser
import services.config_service import services.config_service
import services.help_service import services.help_service
import services.logging_service
# Remove the default logger configuration # Remove the default logger configuration
logger.remove() logger.remove()

View file

@ -1,7 +1,5 @@
import json import json
import logging from loguru import logger
logs = logging.getLogger('Lumi.Core')
class JsonCache: class JsonCache:
@ -13,6 +11,6 @@ class JsonCache:
if path not in JsonCache._cache: if path not in JsonCache._cache:
with open(f"config/JSON/{path}.json", 'r') as file: with open(f"config/JSON/{path}.json", 'r') as file:
JsonCache._cache[path] = json.load(file) JsonCache._cache[path] = json.load(file)
logs.info(f"[JsonParser] {path}.json was loaded and cached.") logger.debug(f"{path}.json was loaded and cached.")
return JsonCache._cache[path] return JsonCache._cache[path]

View file

@ -1,10 +1,8 @@
import logging from loguru import logger
import os import os
import mariadb import mariadb
_logs = logging.getLogger('Lumi.Core')
def create_connection_pool(name: str, size: int) -> mariadb.ConnectionPool: def create_connection_pool(name: str, size: int) -> mariadb.ConnectionPool:
pool = mariadb.ConnectionPool( pool = mariadb.ConnectionPool(
@ -23,7 +21,7 @@ def create_connection_pool(name: str, size: int) -> mariadb.ConnectionPool:
try: try:
_cnxpool = create_connection_pool("core-pool", 25) _cnxpool = create_connection_pool("core-pool", 25)
except mariadb.Error as e: except mariadb.Error as e:
_logs.critical(f"[CRITICAL] Couldn't create MariaDB connection pool: {e}") logger.critical(f"Couldn't create the MariaDB connection pool: {e}")
raise e raise e

View file

@ -1,5 +1,5 @@
from loguru import logger
import asyncio import asyncio
import logging
import random import random
import discord import discord
@ -12,7 +12,6 @@ from modules.birthdays import birthday
from services.birthday_service import Birthday from services.birthday_service import Birthday
from services.config_service import GuildConfig from services.config_service import GuildConfig
_logs = logging.getLogger('Lumi.Core')
_data = JsonCache.read_json("birthday") _data = JsonCache.read_json("birthday")
_months = _data["months"] _months = _data["months"]
_messages = _data["birthday_messages"] _messages = _data["birthday_messages"]
@ -48,7 +47,7 @@ class Birthdays(commands.Cog):
async def daily_birthday_check(self): async def daily_birthday_check(self):
wait_time = time.seconds_until(7, 0) wait_time = time.seconds_until(7, 0)
_logs.info(f"[BirthdayHandler] Waiting until 7 AM Eastern for daily check: {round(wait_time)}s") logger.debug(f"Waiting until 7 AM Eastern for the daily birthday check: {round(wait_time)}s left.")
await asyncio.sleep(wait_time) await asyncio.sleep(wait_time)
embed = discord.Embed(color=discord.Color.embed_background()) embed = discord.Embed(color=discord.Color.embed_background())
@ -61,17 +60,17 @@ class Birthdays(commands.Cog):
guild_config = GuildConfig(guild.id) guild_config = GuildConfig(guild.id)
if not guild_config.birthday_channel_id: if not guild_config.birthday_channel_id:
_logs.info(f"[BirthdayHandler] Guild with ID {guild.id} skipped: no birthday channel defined.") logger.debug(f"Birthday announcements in guild with ID {guild.id} skipped: no birthday channel.")
return return
message = random.choice(_messages) message = random.choice(_messages)
embed.description = message.format(member.name) embed.description = message.format(member.name)
channel = await self.client.get_or_fetch_channel(guild, guild_config.birthday_channel_id) channel = await self.client.get_or_fetch_channel(guild, guild_config.birthday_channel_id)
await channel.send(embed=embed, content=member.mention) await channel.send(embed=embed, content=member.mention)
_logs.info(f"[BirthdayHandler] Success! user/guild/channel ID: {member.id}/{guild.id}/{channel.id}") logger.debug(f"Birthday announcement Success! user/guild/chan ID: {member.id}/{guild.id}/{channel.id}")
except Exception: except Exception as e:
_logs.info(f"[BirthdayHandler] Skipped processing user/guild {user_id}/{guild_id}") logger.warning(f"Birthday announcement skipped processing user/guild {user_id}/{guild_id} | {e}")
# wait one second to avoid rate limits # wait one second to avoid rate limits
await asyncio.sleep(1) await asyncio.sleep(1)

View file

@ -1,4 +1,4 @@
import logging
import discord import discord
from discord.commands import SlashCommandGroup from discord.commands import SlashCommandGroup
@ -13,7 +13,6 @@ from modules.config import config, set_prefix, xp_reward
from services.config_service import GuildConfig from services.config_service import GuildConfig
strings = JsonCache.read_json("strings") strings = JsonCache.read_json("strings")
logs = logging.getLogger('Lumi.Core')
class Config(commands.Cog): class Config(commands.Cog):

View file

@ -1,4 +1,4 @@
import logging from loguru import logger
import random import random
from datetime import datetime from datetime import datetime
@ -14,7 +14,6 @@ from services.currency_service import Currency
from services.stats_service import BlackJackStats from services.stats_service import BlackJackStats
resources = JsonCache.read_json("resources") resources = JsonCache.read_json("resources")
logs = logging.getLogger('Lumi.Core')
est = pytz.timezone('US/Eastern') est = pytz.timezone('US/Eastern')
active_blackjack_games = {} active_blackjack_games = {}
@ -170,7 +169,7 @@ async def cmd(ctx, bet: int):
except Exception as e: except Exception as e:
await ctx.respond(embed=GenericErrors.default_exception(ctx)) await ctx.respond(embed=GenericErrors.default_exception(ctx))
logs.error("[CommandHandler] Something went wrong in the gambling command: ", e) logger.error("Something went wrong in the blackjack command: ", e)
finally: finally:
# remove player from active games list # remove player from active games list

View file

@ -1,4 +1,3 @@
import logging
from datetime import datetime from datetime import datetime
import discord import discord
@ -7,8 +6,6 @@ from services.currency_service import Currency
from services.daily_service import Dailies from services.daily_service import Dailies
from services.xp_service import XpService from services.xp_service import XpService
logs = logging.getLogger('Lumi.Core')
async def cmd(ctx): async def cmd(ctx):
xp_lb = XpService.load_leaderboard(ctx.guild.id) xp_lb = XpService.load_leaderboard(ctx.guild.id)

View file

@ -19,7 +19,7 @@ class Misc(commands.Cog):
@tasks.loop(hours=1) @tasks.loop(hours=1)
async def do_backup(self): async def do_backup(self):
await backup.backup(self) await backup.backup()
@bridge.bridge_command( @bridge.bridge_command(
name="avatar", name="avatar",

View file

@ -1,12 +1,10 @@
import logging from loguru import logger
import os import os
import subprocess import subprocess
from datetime import datetime from datetime import datetime
import dropbox import dropbox
logs = logging.getLogger('Lumi.Core')
oauth2_refresh_token = os.environ.get("LUMI_DBX_OAUTH2_REFRESH_TOKEN") oauth2_refresh_token = os.environ.get("LUMI_DBX_OAUTH2_REFRESH_TOKEN")
app_key = os.environ.get("LUMI_DBX_APP_KEY") app_key = os.environ.get("LUMI_DBX_APP_KEY")
app_secret = os.environ.get("LUMI_DBX_APP_SECRET") app_secret = os.environ.get("LUMI_DBX_APP_SECRET")
@ -48,16 +46,16 @@ async def backup_cleanup():
_dbx.files_delete_v2('/' + file) _dbx.files_delete_v2('/' + file)
async def backup(self): async def backup():
if instance.lower() == "main": if instance.lower() == "main":
logger.debug("Backing up the database.")
try: try:
await create_db_backup() await create_db_backup()
await backup_cleanup() await backup_cleanup()
logs.info("[BACKUP] database backup success.") logger.debug("The database was backed up successfully.")
except Exception as error: except Exception as error:
logs.error(f"[BACKUP] database backup failed. {error}") logger.error(f"database backup failed. {error}")
logs.info(f"[BACKUP] Dropbox failure: {error}")
else: else:
logs.info("[BACKUP] No backup was made, instance not \"MAIN\".") logger.debug("No backup was made, instance not \"MAIN\".")

View file

@ -1,4 +1,3 @@
import logging
import os import os
import platform import platform
from loguru import logger from loguru import logger
@ -11,7 +10,6 @@ from lib import metadata
from services.currency_service import Currency from services.currency_service import Currency
from services.stats_service import BlackJackStats from services.stats_service import BlackJackStats
_logs = logging.getLogger('Lumi.Core')
_art = JsonCache.read_json("art") _art = JsonCache.read_json("art")
_data = JsonCache.read_json("resources") _data = JsonCache.read_json("resources")
@ -47,4 +45,3 @@ async def cmd(command, ctx, unix_timestamp):
# get discord url of uploaded image in embed # get discord url of uploaded image in embed
image_url = embed.image.url image_url = embed.image.url
logger.info(f"Image URL: {image_url}") logger.info(f"Image URL: {image_url}")

View file

@ -1,11 +1,8 @@
import logging
import discord import discord
from discord.ui import View from discord.ui import View
from lib.embeds.info import MiscInfo from lib.embeds.info import MiscInfo
logs = logging.getLogger('Lumi.Core')
url = "https://discord.com/oauth2/authorize?client_id=1038050427272429588&permissions=8&scope=bot" url = "https://discord.com/oauth2/authorize?client_id=1038050427272429588&permissions=8&scope=bot"

View file

@ -1,13 +1,9 @@
import logging
import discord import discord
from lib import formatter from lib import formatter
from lib.embeds.moderation import ModEmbeds, ModErrors from lib.embeds.moderation import ModEmbeds, ModErrors
from modules.moderation import functions from modules.moderation import functions
_logs = logging.getLogger('Lumi.Core')
async def ban_user(cog, ctx, target: discord.User, reason): async def ban_user(cog, ctx, target: discord.User, reason):
# see if user is in guild # see if user is in guild

View file

@ -1,10 +1,8 @@
import logging from loguru import logger
from db import database from db import database
from services import item_service from services import item_service
logs = logging.getLogger('Lumi.Core')
class Inventory: class Inventory:
def __init__(self, user_id): def __init__(self, user_id):
@ -76,5 +74,5 @@ class Inventory:
return item_names return item_names
except Exception as e: except Exception as e:
logs.error(e) logger.error(e)
return [] return []

View file

@ -1,10 +1,8 @@
import logging
import sqlite3 import sqlite3
from loguru import logger
from db import database from db import database
logs = logging.getLogger('Lumi.Core')
class Item: class Item:
def __init__(self, item_id): def __init__(self, item_id):
@ -62,7 +60,7 @@ class Item:
return item_names return item_names
except sqlite3.Error: except sqlite3.Error:
logs.error(sqlite3.Error) logger.error(sqlite3.Error)
return [] return []
@staticmethod @staticmethod

View file

@ -1,70 +0,0 @@
import logging
import os
import re
from datetime import datetime
from logging.handlers import RotatingFileHandler
import pytz
class LumiFormatter(logging.Formatter):
def __init__(self, fmt=None, dateformat=None):
super().__init__(fmt, dateformat)
self.timezone = pytz.timezone('US/Eastern')
def format(self, record):
message = record.getMessage()
message = re.sub(r'\n', '', message) # Remove newlines
message = re.sub(r'\s+', ' ', message) # Remove multiple spaces
message = message.strip() # Remove leading and trailing spaces
record.msg = message
return super().format(record)
def formatTime(self, record, dateformat=None):
timestamp = self.timezone.localize(datetime.fromtimestamp(record.created))
if dateformat:
return timestamp.strftime(dateformat)
else:
return str(timestamp)
def setup_logger():
logs_folder = 'logs'
if not os.path.exists(logs_folder):
os.makedirs(logs_folder)
debug_log_file = os.path.join(logs_folder, 'debug.log')
with open(debug_log_file, 'w'):
pass
# Initialize the logger
logger = logging.getLogger('Lumi.Core')
if logger.handlers:
# Handlers already exist, no need to add more
return logger
logger.setLevel(logging.DEBUG)
# CONSOLE HANDLER
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_formatter = LumiFormatter('[%(asctime)s] [%(name)s] %(message)s')
console_handler.setFormatter(console_formatter)
logger.addHandler(console_handler)
# DEBUG LOG TO FILE HANDLER
max_log_size_bytes = 10 * 1024 * 1024 # max. 10 MB
debug_file_handler = RotatingFileHandler(debug_log_file, maxBytes=max_log_size_bytes, backupCount=5)
debug_file_handler.setLevel(logging.DEBUG)
debug_file_formatter = LumiFormatter('[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s')
debug_file_handler.setFormatter(debug_file_formatter)
logger.addHandler(debug_file_handler)
logger.propagate = False
logging.captureWarnings(True)
return logger