2017-09-08 13 views
1

私はgpsdからいくつかのデータを読み込み、Pythonのロギングモジュールを使って書きます。私は、このロガーが動作している間にtailを使用して読み込んだものの、このファイルに書き込むプロセスは1つだけであると確信しています。毎回、次のようなログエントリがいくつか表示されています。私は、誰かが(おそらくPython)null制御文字をログファイルに挿入する原因を解明することを望んでいます。ファイルに制御文字を挿入するPythonロガー

enter image description here

私が使用していたコードは次のとおりです。

""" 
Read the GPS continuously 
""" 
import logging 
from logging.handlers import RotatingFileHandler 
import sys 
import gps 

LOG = '/sensor_logs/COUNT.csv' 

def main(): 
    log_formatter = logging.Formatter('%(asctime)s,%(message)s', "%Y-%m-%d %H:%M:%S") 

    my_handler = RotatingFileHandler(LOG, mode='a', maxBytes=1024*1024, 
            backupCount=1, encoding=None, delay=0) 
    my_handler.setFormatter(log_formatter) 
    my_handler.setLevel(logging.INFO) 

    app_log = logging.getLogger('root') 
    app_log.setLevel(logging.INFO) 
    app_log.addHandler(my_handler) 

    session = gps.gps("localhost", "2947") 
    session.stream(gps.WATCH_ENABLE | gps.WATCH_NEWSTYLE) 

    while True: 

     try: 
      report = session.next() 
      if hasattr(report, 'gdop'): 
       satcount = 0 
       for s in report['satellites']: 
        if s['used'] == True: 
         satcount+=1 
       data = "{}".format(str(satcount)) 
       app_log.info(data) 

     except KeyError: 
      pass 
     except KeyboardInterrupt: 
      quit() 
     except StopIteration: 
      session = None 

if __name__ == "__main__": 
    main() 
+0

ログに書き込むコマンドが1つしか表示されません。だから私はそれらのバイトがどこから来ているのか分からない。あなたは同じロガーに別の仕事を書いている可能性はありますか?ログの名前を 'root'以外のものに変更し、場合によっては別のファイル名に変更するとどうなりますか? – RobertB

+0

@RobertB、私に戻っていただきありがとうございます。私はあなたの提案を試すことができます。このバグは再現するのが難しいです。私がこれをもう一度掘り起こすまでには、しばらく時間がかかるでしょう。私が説明した問題を引き起こしているものが何であるかを把握したら、私は報告します。 – dps

答えて

0

これは失敗したハードウェアの結果になってしまいました。助けてくれてありがとう、@ RobertB。

関連する問題