Rails3.1のログファイルが約21MBと非常に大きいことがわかりました。これは、通常のサイズの点でですか?本番環境でログファイルはどのようになりますか?その上、ログを取り除くことはできますか?
ファイルを削除するだけです!
Railsは、ログが存在しない場合、新しいログを作成します。
明らかに重要な場合はファイルを保存/バックアップしますが、通常は重要ではありません。
同じドライブに保持したいが、スペースを節約したい場合は、バックアップしたファイルをZipしてからソースを削除することもできます。
ログファイルを自動的にローテーションするには(最良の長期的なソリューション)、ここで説明するようにログローテーションを使用します。
その後、設定して忘れることができます!
ログに記録される内容を実際に変更するには、以下を参照してください。
http://dennisreimann.de/blog/silencing-the-Rails-log-on-a-per-action-basis/
Railsアプリケーションのlog
フォルダには、各標準環境に対応する3つのログファイルが保持されます。ログファイルは、時間の経過とともに非常に大きくなる可能性があります。Arake task
は、ログファイルを簡単に消去できるようにするために提供されています。
rake log:clear
# Truncates all *.log files in log/ to zero bytes
# Specify which logs with LOGS=test,development,production
ドキュメントによると 、ログフォルダーのサイズを制限する場合は、これを 'development.rb'ファイルに追加します。
config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, 50 * 1024 * 1024)
これにより、ログファイルが50Mbを超えることはありません。サイズはお好みで変更できます。 2番目のパラメータの「1」は、1つの履歴ログファイルが保持されることを意味します。つまり、最大100Mbのログ、つまり現在のログと以前の50Mbのログが存在します。
logrotate
を使用することもできます。この質問への答えを見てください: Ruby on Rails本番ログのローテーション 。
config/initializers/clear_development_log.rb
で始まる各サーバーで開発中のログを自動的にクリアします。
if Rails.env.development?
`rake log:clear`
end
はい、次のような構文を使用できます。
config.logger = ActiveSupport::Logger.new(config.log_file, num_of_file_to_keep, num_of_MB*1024*1024)
例:
config.logger = ActiveSupport::Logger.new(config.log_file, 2, 20*1024*1024)
Rails logを使用するだけでなく、次のようなRailsで実行されるサービスのログファイルを使用できます:rpush log、...
初期化子での公平な妥協:
Rake::Task['log:clear'].invoke if Rails.env.development? || Rails.env.test?
config.logger = ActiveSupport::Logger.new(nil)
はトリックを実行し、ファイルへのロギングを完全に無効にします(コンソール出力は保持されます)。