Pythonトレースログファイルをどのように作成しますか?さまざまな方法を試してください

Pythonトレースログファイルをどのように作成しますか?さまざまな方法を試してください

私はsyslogなどのログファイルを追跡するためにPythonを取得しようとしています。

読み取りモードでファイルを開こうとしましたが、他のプロセスがファイルに書き込んでいるかどうかはまったく認識されませんでした。 popenと実際の「tail -f」を使ってpopenプロセスを選択するように登録すると、Pythonは書かれたすべてを読むことができます。 python systemdモジュールを使用すると、systemdにコンテンツに応答させることができますが、この方法の代わりに他の方法があるかどうか、ファイルを開いて開いて1024バイトを継続的に読み取ろうとするとうまくいかないのはなぜですか?

答え1

syslogなどのログファイルを再開せずに機能する必要があります。 Tailはまた、必要でない場合(必要でない場合)、ファイルを再開しません。通常のファイルをポーリングする必要があり、データを待つことはパイプやソケットなどでのみ実行できます。

何が間違っているのか、どのように解決するのかを知らせるために機能しないコード例を投稿することをお勧めします。また、達成しようとする目標は理解しにくい。データが利用可能になるまで読み取りを選択またはブロックしたい場合は、通常のファイルでは不可能です(設計上のファイルであり、パイプなどではありません)。唯一の可能性は、これを達成するためにinotifyに依存するか、単純なポーリングを使用することです。 (これはテールのような効果があります。)

関連情報