ファイルハンドラーの背後にあるファイルタイプを見つけるという問題に直面しています。
apache_log_parser が 1 行の解析に失敗し、プログラム全体が異常終了したため、これが必要です。
Traceback (most recent call last): File "VirtualEnvs/moslog/bin/mosloganalisys.py", line 108, in
<module>
totalines = count_agent(logfilehandler,agentcount,totalines) File "VirtualEnvs/moslog/bin/mosloganalisys.py", line
27, in count_agent
log_line_data = line_parser(line) File "VirtualEnvs/moslog/lib/python2.7/site-packages/apache_log_parser/__init__.py",
line 225, in parse
raise LineDoesntMatchException(log_line=log_line, regex=self.log_line_regex.pattern)
その理由は、ファイル ハンドラーが gz ファイルを指していたためです。これは二重圧縮ファイル *.gz.gz であったため、gzip ライブラリを使用してファイルを解凍したかどうかに関係なく、解凍されたファイルは別の gzip ファイルでした。
そのため、python-magic ライブラリを使用してファイルの種類を調べようとしましたが、ファイル名が必要なようです。
72 """
73 self._thread_check()
---> 74 if not os.path.exists(filename):
75 raise IOError("File does not exist: " + filename)
76
/usr/lib64/python2.7/genericpath.pyc in exists(path)
16 """Test whether a path exists. Returns False for broken symbolic links"""
17 try:
---> 18 os.stat(path)
19 except os.error:
20 return False
私はすでに try: / expect: ステートメントを実装していますが、これは多くの無駄な行を処理するという問題を実際には解決していません。
あなたは何をすることを提案しますか? ありがとう