ロギングにPythonロギングモジュールを使用するJythonスクリプトがあります。あるマシンでは、スクリプトは正常にログを記録し、もう一方のログでは5時間後に移行します。おそらくこれはマシンがGMT-5にあることと関係があります。あなたはこの問題を引き起こす可能性があると思いますか?私はlog_format.converter
機能を見てなかったJythonのロギングに時間が間違っています
log = logging.getLogger("my_log")
log.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
log_file,
maxBytes=log_size,
backupCount=logs_count)
log_format = logging.Formatter("%(asctime)s:%(levelname)s:%(message)s")
handler.setFormatter(log_format)
handler.setLevel(logging.DEBUG)
log.addHandler(handler)
:ここ
は、私は、ロギングオブジェクトを作成する方法です。問題のあるマシンで時間が正しく設定されていることを確認しました。そして、私はPythonのシェルでPythonが正しい時刻を出力していることを確認しました。
編集:私がtime.localtime()
をPythonシェル(2.4.3)から見ると、正しいローカルタイム値を持つタプルが得られます。 Jythonスクリプト(2.5.2RC1)の中からtime.localtime()
を見ると、GMTの時刻が表示されます。
正しくログするマシンでGMTが使用されていますか? – Velociraptors
はい、そうです:それはLinuxマシンで、UnixマシンはGMTを内部的に使用してから数学を行います。他のマシン...私は確信していません。私は/ etc/issuesから判断して、CentOSリリース5(最終版)を知っていることを意味しますが、私はそれが仮想化されていると思います。両方のマシンで、bashから 'date'を実行すると、正しい時刻が得られます。 – wilhelmtell
また、 'log_format.converter = time.localtime'を明示的に設定してみました。 – wilhelmtell