Распилен кусок с логгированием, выкинута библиотека для подкрашивания логов

This commit is contained in:
lulzette 2024-05-01 16:38:28 +03:00
parent 6849a5c801
commit ebb36ac844
3 changed files with 55 additions and 36 deletions

View File

@ -1,3 +1,2 @@
twitchAPI==2.5.7.1
termcolor
pyTelegramBotAPI==4.8.0
pyTelegramBotAPI==4.8.0

51
src/log_msg.py Normal file
View File

@ -0,0 +1,51 @@
import logging
from logging.handlers import TimedRotatingFileHandler
import sys
log_format = logging.Formatter('%(asctime)s %(levelname)s:%(message)s')
log_file = 'output.log'
class CustomFormatter(logging.Formatter):
grey = "\x1b[38;20m"
yellow = "\x1b[33;20m"
red = "\x1b[31;20m"
bold_red = "\x1b[31;1m"
reset = "\x1b[0m"
format = "%(asctime)s %(levelname)s - %(message)s"
FORMATS = {
logging.DEBUG: grey + format + reset,
logging.INFO: grey + format + reset,
logging.WARNING: yellow + format + reset,
logging.ERROR: red + format + reset,
logging.CRITICAL: bold_red + format + reset
}
def format(self, record):
log_fmt = self.FORMATS.get(record.levelno)
formatter = logging.Formatter(log_fmt)
return formatter.format(record)
class MyLog:
def __init__(self):
self.logger = logging.getLogger("main")
self.logger.setLevel(logging.DEBUG)
# Console logging
self.console = self.get_console_handler()
self.console.setFormatter(CustomFormatter())
self.logger.addHandler(self.console)
self.logger.addHandler(self.get_file_handler())
self.logger.propagate = False
def get_console_handler(self):
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(log_format)
return console_handler
def get_file_handler(self):
file_handler = TimedRotatingFileHandler(log_file, when='midnight')
file_handler.setFormatter(log_format)
return file_handler

View File

@ -2,11 +2,8 @@
import time
import os
import sys
import logging
from twitchAPI.twitch import Twitch
from logging.handlers import TimedRotatingFileHandler
from termcolor import colored
import telebot
from telebot.types import InputFile
from telebot import types
@ -15,9 +12,7 @@ import requests
import shutil
from parse_config import Config, load_config
log_format = logging.Formatter('%(asctime)s %(levelname)s:%(message)s')
log_file = 'output.log'
from log_msg import MyLog
def stream_message_worker(data: dict):
@ -118,12 +113,7 @@ def check_alive():
# Получаем инфо о стримере, если не получается, выходим с ошибкой
resolved_id = twitch_client.get_users(logins=[config_python.streamer])
if not resolved_id['data']:
log.error(
colored(
"Аккаунт " + config_python.streamer + " не найден",
'red',
)
)
log.error("Аккаунт " + config_python.streamer + " не найден")
# Достаем ID стримера из инфо
user_id = resolved_id['data'][0]['id']
# Получаем стримы
@ -136,29 +126,8 @@ def check_alive():
no_stream_msg_worker()
def get_console_handler():
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(log_format)
return console_handler
def get_file_handler():
file_handler = TimedRotatingFileHandler(log_file, when='midnight')
file_handler.setFormatter(log_format)
return file_handler
def get_logger(logger_name):
logger = logging.getLogger(logger_name)
logger.setLevel(logging.DEBUG)
logger.addHandler(get_console_handler())
logger.addHandler(get_file_handler())
logger.propagate = False
return logger
if __name__ == '__main__':
log = get_logger("main")
log = MyLog().logger
log.info("Запущен")
config_python = load_config()
twitch_client = Twitch(config_python.app_id, config_python.app_secret)