> 2. ログレベルを引き下げて運用してみる
まずは手っ取り早いこちらの方法で試したところ、SQLが出力されている
ことを確認いたしました。
パスワードもハッシュ化、もしくは非表示になっていたため、パスワードに
ついては問題なさそうです。
ただ、仰る通りそのまま出力していても運用には向かないですね。
> 1. 別途ロガーを仕込んで任意の出力を得る。
こちらについては最適なファイルが分からなかりませんでしたが、下記の
ファイルに追加してログが出力されることを確認いたしました。
/redmine/app/controllers/application_controller.rb
当方、Ruby自体慣れていないため、間違っていればご指摘願います。
ただし、こちらはパスワードがそのまま出力されてしまっていたので
セキュリティ面では課題が残ります。
下記のようにpasswordフィルターらしき部分を修正してみましたが、
ユーザパスワード変更時はログが出力されず、ログイン時には平文で
出力されてしまいました。
# before_filter :user_setup, :check_if_login_required, :set_localization
before_filter :user_setup, :check_if_login_required,
:set_localization, :access_logging
filter_parameter_logging :password
protect_from_forgery
これが解決出来れば1の方法がもっとも良さそうです。
引き続き調査いたします。
2011年5月10日9:36 fmkt <fmkt....@gmail.com>:
> --
> このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。
> このグループに投稿するには、redmine-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、redmine-users-...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/redmine-users-ja?hl=ja からこのグループにアクセスしてください。
>
>
試したところ、無事ログ出力できるようになりました。
操作ログの採取はこれで一段落いたしました。
誠にありがとうございます。
最終的には出力したくないものを加えて下記のように致しました。
/redmine/app/controllers/application_controller.rb
after_filter :access_logging
def access_logging
params.delete(:password)
params.delete(:password_confirmation)
params.delete(:new_password)
params.delete(:new_password_confirmation)
req_param = params.map {|key,value| "#{key} => #{value}"}.join(",")
message = "#{User.current.login}: #{req_param}"
log = Logger.new(File.join(RAILS_ROOT, "/log/access.log"), "daily")
log.formatter = Logger::Formatter.new
log.info(message)
end
2011年5月10日13:46 fmkt <fmkt....@gmail.com>:
ApplicationController はひとつのプロセスでオブジェクトを解放しないで
何度も利用されるんですね。
参考になります。
2011年5月11日9:59 fmkt <fmkt....@gmail.com>: