3

私はログファイルにエラーを記録するPythonで書かれたアプリケーションを持っています、私はpythonロギングモジュールを使用しています

例:

import logging
logging.basicConfig(filename='\logs\filename.log',
                    level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s')
logging.error('error connecting to server')

これは正常に機能しており、ログファイルはエラーをログに記録しています。つまり、最後のエラーはファイルの最後の行に記録されます。

ロギングモジュールに常にファイルの先頭に書き込むように指示できる、ある種の設定があります。このようにして、最後のエラーは常に最初の行にあります。

4

1 に答える 1

2

他の人が言っているように、ファイルの前に書くのは非常に非効率的です。すべての書き込みは、最初にファイルの先頭をシークしてから、他のデータの前に新しいデータを挿入する必要があります。オペレーティングシステムの基盤となるI/Oは、追加を安価にするように設計されています。

そうは言っても、それを行うことを主張する場合は、ここのドキュメントを参照してくださいlogging.handlers.FileHandler各書き込みの前に最初からシークする独自のバージョンを実装できます。logging.addHandler()次に、クラスのインスタンスを呼び出して配置できます。最新の10個程度のログエントリのみを気にする場合は、書き込む前にファイルを切り捨てることもできます。

于 2012-10-11T17:54:37.400 に答える