1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-02 20:43:12 +00:00

Add detailed logger

This commit is contained in:
wlinator 2023-07-02 08:20:16 -04:00
parent cb2b56ad74
commit 6b6bfae516
7 changed files with 75 additions and 13 deletions

3
.gitignore vendored
View file

@ -3,4 +3,5 @@ venv/
__pycache__/
*.db
.env
.env
*.log

View file

@ -1,8 +1,11 @@
import json
import logging
import sqlite3
from db import database
racu_logs = logging.getLogger('Racu.Core')
class Item:
def __init__(self, item_id):
@ -59,7 +62,7 @@ class Item:
database.execute_query(query,
(index, name, display_name, description, image_url, emote_id, quote, item_type))
print("Items inserted into the database successfully.")
racu_logs.info("Items inserted into the database successfully.")
@staticmethod
def get_all_item_names():
@ -75,7 +78,7 @@ class Item:
return item_names
except sqlite3.Error:
print(sqlite3.Error)
racu_logs.error(sqlite3.Error)
return []
@staticmethod

View file

@ -1,12 +1,15 @@
import logging
import sqlite3
from sqlite3 import Error
racu_logs = logging.getLogger('Racu.Core')
def create_connection():
try:
conn = sqlite3.connect("db/rcu.db")
except Error as e:
print("'create_connection()' Error occurred: {}".format(e))
racu_logs.error("'create_connection()' Error occurred: {}".format(e))
return
return conn

View file

@ -1,5 +1,9 @@
import logging
from db import database
racu_logs = logging.getLogger('Racu.Core')
xp_table = """
CREATE TABLE IF NOT EXISTS xp (
user_id INTEGER PRIMARY KEY NOT NULL,
@ -95,4 +99,4 @@ def sync_database():
database.execute_query(stats_slots)
database.execute_query(stats_duel)
print("On startup: database synced.")
racu_logs.info("Database was synced.")

View file

@ -1,9 +1,12 @@
import logging
import time
from data.Currency import Currency
from data.Xp import Xp
from sb_tools import level_messages
racu_logs = logging.getLogger('Racu.Core')
class XPHandler:
def __init__(self):
@ -15,7 +18,7 @@ class XPHandler:
xp = Xp(user_id)
if xp.ctime and current_time < xp.ctime:
print(f"XP UPDATE --- {message.author.name} sent a message but is on XP cooldown.")
racu_logs.info(f"XP UPDATE --- {message.author.name} sent a message but is on XP cooldown.")
return
new_xp = xp.xp + xp.xp_gain
@ -37,11 +40,11 @@ class XPHandler:
user_currency.add_special(1)
user_currency.push()
print(f"XP UPDATE --- {message.author.name} leveled up; new_level = {xp.level}.")
racu_logs.info(f"XP UPDATE --- {message.author.name} leveled up; new_level = {xp.level}.")
else:
xp.xp += xp.xp_gain
print(f"XP UPDATE --- {message.author.name} gained {xp.xp_gain} XP; new_xp = {new_xp}.")
racu_logs.info(f"XP UPDATE --- {message.author.name} gained {xp.xp_gain} XP; new_xp = {new_xp}.")
xp.ctime = current_time + xp.new_cooldown
xp.push()
@ -70,7 +73,6 @@ class XPHandler:
guild = user.guild
if guild.id != 719227135151046699:
print("Not Rave Cave -> no level-up role")
return
current_level_role = None

50
main.py
View file

@ -9,8 +9,10 @@ SPECIAL_BALANCE_NAME=
import logging
import os
from datetime import datetime
import discord
import pytz
from dotenv import load_dotenv
import db.tables
@ -20,7 +22,50 @@ from data.Item import Item
from handlers.ReactionHandler import ReactionHandler
from handlers.XPHandler import XPHandler
logging.basicConfig(level=logging.INFO)
class RacuFormatter(logging.Formatter):
def converter(self, timestamp):
tz = pytz.timezone('US/Eastern')
converted_time = datetime.fromtimestamp(timestamp, tz)
return converted_time
def formatTime(self, record, datefmt=None):
timestamp = self.converter(record.created)
if datefmt:
return timestamp.strftime(datefmt)
else:
return str(timestamp)
def setup_logger():
# Initialize the logger
logger = logging.getLogger('Racu.Core')
if logger.handlers:
# Handlers already exist, no need to add more
return logger
logger.setLevel(logging.DEBUG)
# Create console handler and set level and formatter
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_formatter = RacuFormatter('[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
console_handler.setFormatter(console_formatter)
logger.addHandler(console_handler)
# Create file handler and set level and formatter
file_handler = logging.FileHandler('racu.log')
file_handler.setLevel(logging.DEBUG)
file_formatter = RacuFormatter('[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
file_handler.setFormatter(file_formatter)
logger.addHandler(file_handler)
return logger
racu_logs = setup_logger()
load_dotenv('.env')
# load all json
@ -43,7 +88,7 @@ def load_cogs(reload=False):
sbbot.load_extension(f'modules.{filename[:-3]}')
else:
sbbot.reload_extension(f'modules.{filename[:-3]}')
print(f"Module '{filename}' ready.")
racu_logs.info(f"Module {filename} loaded.")
@sbbot.event
@ -55,6 +100,7 @@ async def on_ready():
# reload all cogs to sync db parameters
load_cogs(reload=True)
racu_logs.info("RACU IS BOOTED/READY")
"""
https://docs.pycord.dev/en/stable/api/events.html#discord.on_ready

View file

@ -1,4 +1,5 @@
import asyncio
import logging
import subprocess
import discord
@ -6,6 +7,8 @@ from discord.ext import commands
from sb_tools import interaction, embeds, universal
racu_logs = logging.getLogger('Racu.Core')
class BasicCog(commands.Cog):
def __init__(self, sbbot):
@ -30,9 +33,9 @@ class BasicCog(commands.Cog):
await ctx.respond(content="Restarting..", ephemeral=True)
try:
print(subprocess.check_output(["/bin/bash", "racu_update.sh"]))
racu_logs.info(subprocess.check_output(["/bin/bash", "racu_update.sh"]))
except subprocess.CalledProcessError as e:
print(f"Error executing the script: {e.output.decode()}")
racu_logs.error(f"Error executing the script: {e.output.decode()}")
@commands.slash_command(
name="intro",