私はPythonを使い始めていますが、現在はAPIを使ってDiscordボットを作成しています。これまでのところとてもうまくいって、すべてが機能します。今、私はコンソールを使わずにサーバー上でスクリプトをホストすることを考えています。つまり、出力をコンソールではなくファイルに入れたいのです。私は以下の現在作業中です:Discord API(on_error)のエラー処理
import discord
import logging
logging.basicConfig(filename='.\output.log', filemode='w', level=logging.INFO, format='%(asctime)s:%(levelname)s:%(message)s')
xzbot = discord.Client()
# logging when the bot starts
@xzbot.event
async def on_ready():
logging.info('Logged in as ' + xzbot.user.name + ' (' + xzbot.user.id + ')\n')
このコードは、警告と情報をoutput.logに入れます。それは、ボットがパーミッションを持たずにメッセージを送信しようとしているときに、 "Permissions denied"のようなDiscord.pyによって発生した例外では機能しません。
それを処理するための確執APIの組み込み関数があります:
discord.on_error(event, *args, **kwargs)
だから私はこのようにこの関数を呼び出すことができます。
async def xzbot.on_error(event, *args, **kwargs):
pass
は今、私はevent
で何かをやってみました、*args
または**kwargs
ですが、ここで私はちょうどlogging.warning()
を使用できる形式でそれを得るために何か助けが必要です。私が得ることができるのはprint(*args)
の結果としてobject
であり、それを正しくフォーマットする方法はわかりません。