Вывод ошибок в discord
У меня есть код:
@client.event
async def on_command_error(event, *args, **kwargs):
channel = client.get_channel(727801516626542634)
embed = discord.Embed(title=':x: Event Error', colour=0xe74c3c) #Red
embed.add_field(name='Event', value=event)
embed.description = f'```py\n%s\n```' % traceback.format_exc()
embed.timestamp = datetime.datetime.utcnow()
await channel.send(embed=embed)
Он должен выводить ошибки из консоли в чат, но он делает это очень странно: спойлер
Ответы (1 шт):
Автор решения: Fixator10
→ Ссылка
Событие on_command_error не имеет аргумента event. Так же, оно срабатывает при ошибке команды, а не при ошибке события. Для событий и остальных ошибок используйте событие on_error
@client.event
async def on_command_error(ctx, exception): # для команд
channel = client.get_channel(727801516626542634)
embed = discord.Embed(title=':x: Command Error', colour=0xe74c3c) #Red
embed.add_field(name='Command', value=ctx.command)
embed.description = f"```py\n{traceback.format_exception(type(exception), exception, exception.__traceback__)}\n```"
embed.timestamp = datetime.datetime.utcnow()
await channel.send(embed=embed)
@client.event
async def on_error(event, *args, **kwargs): # для остальных ошибок
channel = client.get_channel(727801516626542634)
embed = discord.Embed(title=':x: Event Error', colour=0xe74c3c) #Red
embed.add_field(name='Event', value=event)
embed.description = f"```py\n{traceback.format_exc()}\n```"
embed.timestamp = datetime.datetime.utcnow()
await channel.send(embed=embed)
Нет никакого смысла использовать %-форматирование при использовании f-строк.