2017-03-31 11 views
1

ファイルに記録するロガーがありますが、TM文字に遭遇したときに例外がスローされ、エントリがログに記録されないことがあります。ファイルにPythonロギング特殊文字を

logging.basicConfig(filename='C:/Users/Administrator/Desktop/logs/log.log', 
    level=logging.INFO, 
    format='%(asctime)s - %(message)s') 

何が問題なのですか。

編集:

これらは明らかに時間とメッセージです。メッセージは文字列化されたオブジェクト{log:log}としてwebsocket経由でgoogle chromeから受信され、data = json.loads(obj)を使用して解析されます。次に、data ["log"]文字列がメッセージに入ります。

+1

TM文字とは何ですか? 'asctime'と' message'には何がありますか? – wallyk

+0

商標文字は、一部の文字をユニコードなどに変換できないと言っていました。 – Anonymous

+0

スクリプトの先頭に '# - * - coding:UTF-8 - * - 'を入れてみてください。 – najjarammar

答えて

4

loggerにファイルを開く代わりに、ファイルを開き、その文字を処理できるエンコードを指定します。

logfile = open('C:/Users/Administrator/Desktop/logs/log.log', 'a', encoding='utf-8') 
logging.basicConfig(stream=logfile, 
    level=logging.INFO, 
    format='%(asctime)s - %(message)s') 
+0

これは私に別のエラーを与えます - ValueError:閉じたファイルに対する入出力操作。 – Anonymous

+0

クラス内で呼び出されていますが、これが問題になる可能性がありますか? – Anonymous

+0

@Anonymous 'with'ブロックが終了すると、ファイルは閉じられます。ブロック内のすべてのロギングを行うか、単純な 'logfile = open(...)'を使い、それが終わったら 'logfile.close()'を使います。 –