Параметр неверен в TextIOWrapper, создающем логгер с винтиками - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь установить автоматическую систему ведения журнала, которая помещает все отправленные и удаленные сообщения, но время от времени я получаю эту ошибку:

Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
OSError: [WinError 87] The parameter is incorrect

Достаточно легко перезапустить бота, но поскольку это автоматическая система, как только эта ошибка достигает, она полностью отключается и попадает в эту l oop печать этой ошибки

Вот мой код:

from discord.ext import commands


# https://youtu.be/BoVOzm1uhUA
class Logger(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_message(self, c):
        if(c.guild):
            if c.guild.name == "Server Name":
                if c.author.bot == True:
                    try:
                        print(f"Bot: {c.author} said --- {c.clean_content} --- in #{c.channel.name}")
                    except OSError:
                        print('An error occurred')
                        pass
                else:
                    try:
                        print(f"User: {c.author} said --- {c.clean_content} --- in #{c.channel.name}")
                    except OSError:
                        print('An error occurred')
                        pass
            elif c.guild.name == "Server 2 Name":
                if c.author.bot == True:
                    try:
                        print(f"Bot: {c.author} said --- {c.clean_content} --- in #{c.channel.name}")
                    except OSError:
                        print('An error occurred')
                        pass

                else:
                    try:
                        print(f"User: {c.author} said --- {c.clean_content} --- in #{c.channel.name}")
                    except OSError:
                        print('An error occurred')
                        pass

    @commands.Cog.listener()
    async def on_message_delete(self, c):
        if(c.guild):
            if c.guild.name == "Server Name":
                if c.author.bot == True:
                    print(f"Bot: {c.author} deleted --- {c.clean_content} --- in #{c.channel.name}")
                    pass
                else:
                    print(f"User: {c.author} deleted --- {c.clean_content} --- in #{c.channel.name}")
                    pass
            elif c.guild.name == "Server 2 Name":
                if c.author.bot == True:
                    print(f"Bot: {c.author} deleted --- {c.clean_content} --- in #{c.channel.name}")
                    pass
                else:
                    print(f"User: {c.author} deleted --- {c.clean_content} --- in #{c.channel.name}")
                    pass

#print(f"{c.created_at} || Bot: {c.author} deleted --- {c.clean_content} --- in #{c.channel.name}");

def setup(bot):
    bot.add_cog(Logger(bot))

Как видите, я уже пытался исправьте эту ошибку, но она не сработала. Любая помощь приветствуется. Эта ошибка сводит меня с ума

...