これは私がログインする方法です、私は、ユーザーのコントローラを持っている。このようなアクションを作成します:
def create
@user = User.new(params[:user])
if @user.save
flash[:notice] = "Welcome, #{@user.username}"
redirect_to(:controller => "users", :action => "home")
session[:id] = @user.id
else
render("home")
end
end
今私がいることをログに記録したいと思いますユーザーが作成した後、私はこれを行う:
まずUser.rb(モデル)でAuditLoggerクラスを作成します。
class User < ActiveRecord::Base
...some stuff other....
class AuditLogger < Logger
def format_message(severity, timestamp, progname, msg)
"#{timestamp.to_formatted_s(:db)} #{severity} #{msg}\n"
end
end
のThコントローラ(users.rb)に戻る
def create
@user = User.new(params[:user])
if @user.save
logfile = File.open("#{Rails.root}/log/my_log.log", 'a')
audit_log = AuditLogger.new(logfile)
audit_log.info "#{@user.firstname} was created successfully"
redirect_to(:controller => "users", :action => "home")
else
render("home")
end
end
さらに、ログディレクトリにmy_log.logというファイルを作成する必要があります。うまくいけば、ログに記録できるはずです。私はそれが最良の解決策ではないことを知っています、そして、私はそれを行うより良い方法ですが、私は緊急に作業するために何かが必要な時に、私はそれに固執しました。
チェックアウトこれらのリンク:
rails logging tips
alternative logging solution