pythonを見様見真似で、ブラウザを開いて条件を指定して画面を表示し、結果をPDFに出力してメール送信するスクリプトを作ってみました。
処理自体はなんとか動いたのですが、スケジューラで自動実行させる時に、その履歴をログとして残しておかないと、原因の追跡に困ると思いまして、処理履歴はログファイルを出力しているのですが、例外処理の結果をその中に含めることは可能なのでしょうか?
バッチファイルをリダイレクトでテキストファイルに吐き出すと出ないかなと思ったのですが、結果は同じです。
python test.py > err.log
何か方法はないかと思い、素人の愚かな質問ですが、よろしくお願いします。
実行環境は、python3.11 Windows10です。
以下、例外処理部分のみ切り出したものですが、当然、print(e)で画面表示のみは可能ですが、ファイル出力をすると、エラーになります。
python
1import datetime 2import time 3 4def timestamp(): 5 buf = '[' + str(datetime.datetime.now()) + '] ' 6 return buf 7 8def log_write(fp,inf): 9 fp.write(timestamp() + inf + '\n') 10 11def main(): 12 try: 13 log = open('weblog.txt', 'a') 14 log_write(log,"ログを開きました") 15 raise 16 except Exception as e: 17 #print(e) 18 log.write('[' + str(datetime.datetime.now()) + '] ' + e + '\n') 19 #log_write(log,e) 20 21if __name__ == '__main__': 22 main() 23
回答2件
あなたの回答
tips
プレビュー