2

ActiveRecord#saveが大きなフィールドのコンテンツをログに記録しないようにする必要があります。

Rails 2.3.xでこれを構成する方法はありますか?

@document.save #=> Will log something like:

Apr 20 13:45:42 ubuntu rails[2619]: Document::HTML Update (7.0ms)   UPDATE `documents` SET `some_meta_data` = 1, `more_meta_data` = 2, `document_content` = '\n\n\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional.....................'
Apr 20 13:45:42 ubuntu rails[2619]: SQL (5.8ms)   COMMIT

document_contentタイプがmysql'text'であるため、フィールドをログに記録したくありません。

4

1 に答える 1

2

rails 3を使用している場合は、config/application.rbで次のようにします。

config.filter_parameters += [:password, :document_content]

次に、アプリを再起動します。その時点から、ログには'document_content' = [ FILTERED ]、メモリが適切に機能するかどうかのようなものが表示されます。

レール2を使用している場合は、コントローラー内に次のものを配置する必要があります。

filter_parameter_logging :document_content

必要に応じて、フィールドのコンマ区切りリストを追加できます。

于 2011-04-20T17:53:17.747 に答える