私の質問は、まず、ロガーを作成するには、複数の方法があります ロガーから継承する(私はactivesupportの::ロガーを使用して)2節 Rubyのロガーは
に分割されたモードを追加します。# Approach 1
logger = ActiveSupport::Logger.new('test.log')
logger.info "Test1" # => I see the auto flushing happens in this
# Approach 2
logger = ActiveSupport::Logger.new(File.new('test.log','a'))
logger.info "Test2" ## No auto flushing unless done logger.close
このように、アプローチ2のポイントは表示されません。自動フラッシングは発生しません。
アプローチ2で自動フラッシュが行われないのはなぜですか?第二に
、
私は私のログファイル上記のアプローチのどれも削除しないに起こる場合(上記の言及は)二度と新しいログファイルを作成しても、ログメッセージをログに記録しません。
このような状況ではどうすればよいですか? Railsはどうしていますか?どんな手掛かり?
を'file'オブジェクトを引数として与えるたびにloggerが私のためにそれを行うと仮定します(' sync ')。 2番目の部分で合意しました。それは、それが依然として参照を保持するファイルを削除するときです。私が望んでいたのは、最後の部分からのものでした。ファイルのログを有効にする方法は、基本的にコードを少し変更することなく新しいファイルを書き込むことでした。 – Viren
@Krisjan 'lstat'はそれに感謝しました。 – Viren