1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-02 18:23:12 +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 services.config_service
import services.help_service
import services.logging_service
# Remove the default logger configuration
logger.remove()

View file

@ -1,7 +1,5 @@
import json
import logging
logs = logging.getLogger('Lumi.Core')
from loguru import logger
class JsonCache:
@ -13,6 +11,6 @@ class JsonCache:
if path not in JsonCache._cache:
with open(f"config/JSON/{path}.json", 'r') as 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]

View file

@ -1,10 +1,8 @@
import logging
from loguru import logger
import os
import mariadb
_logs = logging.getLogger('Lumi.Core')
def create_connection_pool(name: str, size: int) -> mariadb.ConnectionPool:
pool = mariadb.ConnectionPool(
@ -23,7 +21,7 @@ def create_connection_pool(name: str, size: int) -> mariadb.ConnectionPool:
try:
_cnxpool = create_connection_pool("core-pool", 25)
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

View file

@ -1,5 +1,5 @@
from loguru import logger
import asyncio
import logging
import random
import discord
@ -12,7 +12,6 @@ from modules.birthdays import birthday
from services.birthday_service import Birthday
from services.config_service import GuildConfig
_logs = logging.getLogger('Lumi.Core')
_data = JsonCache.read_json("birthday")
_months = _data["months"]
_messages = _data["birthday_messages"]
@ -48,7 +47,7 @@ class Birthdays(commands.Cog):
async def daily_birthday_check(self):
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)
embed = discord.Embed(color=discord.Color.embed_background())
@ -61,17 +60,17 @@ class Birthdays(commands.Cog):
guild_config = GuildConfig(guild.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
message = random.choice(_messages)
embed.description = message.format(member.name)
channel = await self.client.get_or_fetch_channel(guild, guild_config.birthday_channel_id)
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:
_logs.info(f"[BirthdayHandler] Skipped processing user/guild {user_id}/{guild_id}")
except Exception as e:
logger.warning(f"Birthday announcement skipped processing user/guild {user_id}/{guild_id} | {e}")
# wait one second to avoid rate limits
await asyncio.sleep(1)

View file

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

View file

@ -1,4 +1,4 @@
import logging
from loguru import logger
import random
from datetime import datetime
@ -14,7 +14,6 @@ from services.currency_service import Currency
from services.stats_service import BlackJackStats
resources = JsonCache.read_json("resources")
logs = logging.getLogger('Lumi.Core')
est = pytz.timezone('US/Eastern')
active_blackjack_games = {}
@ -170,7 +169,7 @@ async def cmd(ctx, bet: int):
except Exception as e:
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:
# remove player from active games list

View file

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

View file

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

View file

@ -1,12 +1,10 @@
import logging
from loguru import logger
import os
import subprocess
from datetime import datetime
import dropbox
logs = logging.getLogger('Lumi.Core')
oauth2_refresh_token = os.environ.get("LUMI_DBX_OAUTH2_REFRESH_TOKEN")
app_key = os.environ.get("LUMI_DBX_APP_KEY")
app_secret = os.environ.get("LUMI_DBX_APP_SECRET")
@ -48,16 +46,16 @@ async def backup_cleanup():
_dbx.files_delete_v2('/' + file)
async def backup(self):
async def backup():
if instance.lower() == "main":
logger.debug("Backing up the database.")
try:
await create_db_backup()
await backup_cleanup()
logs.info("[BACKUP] database backup success.")
logger.debug("The database was backed up successfully.")
except Exception as error:
logs.error(f"[BACKUP] database backup failed. {error}")
logs.info(f"[BACKUP] Dropbox failure: {error}")
logger.error(f"database backup failed. {error}")
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 platform
from loguru import logger
@ -11,7 +10,6 @@ from lib import metadata
from services.currency_service import Currency
from services.stats_service import BlackJackStats
_logs = logging.getLogger('Lumi.Core')
_art = JsonCache.read_json("art")
_data = JsonCache.read_json("resources")
@ -47,4 +45,3 @@ async def cmd(command, ctx, unix_timestamp):
# get discord url of uploaded image in embed
image_url = embed.image.url
logger.info(f"Image URL: {image_url}")

View file

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

View file

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

View file

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

View file

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