这是我记录的方式,我有一个用户控制器创建这样的操作:
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(model) 中创建一个 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
然后回到控制器(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