私はモデルを持っていますが、そのクエリを共通ログに書きたくないのです。一部の機種でロガーを切り替えることは可能ですか?
質問する
1052 次
3 に答える
2
あなたはこれを行うことができます:
別の形式にする場合は、カスタム ロガーを作成します。形式を同じにする必要がある場合は、これを無視できます。
class ModelLogger < Logger
def format_message(severity, timestamp, progname, msg)
"#{timestamp.to_formatted_s:)db)} #{severity} #{msg}\n"
end
end
config/initializers/ で、logs.rb を作成し、これを追加します。
model_logfile = File.open("#{RAILS_ROOT}/log/model.log", 'a')
model_logfile.sync = true
MODEL_LOG = ModelLogger.new(model_logfile)
ここで、サーバーを再起動した後、
MODEL_LOG.debug "This will be logged to model.log"
MODEL_LOG.error "Errors also can be logged."
于 2012-08-09T13:35:03.793 に答える
1
これはあなたの質問に答えるはずです。STDOUT をニーズに合ったものに置き換えます
。rake タスク (rails2) から標準出力を使用するように Rails ロガーを変更する方法
于 2012-08-09T13:34:40.303 に答える
1
私は push-core gem を使用していますが、2 秒ごとに次のような多くの迷惑なメッセージがログに書き込まれます。
Push::Message Load (0.6ms) SELECT "push_messages".* FROM "push_messages" ...
ログから「Push::Message Load」イベントを削除するために、次のコードをイニシャライザに追加しました。
# Disable annoying (every 2 sec) "Push::Message Load" events
ActiveRecord::LogSubscriber.class_eval do
alias_method :old_sql, :sql
def sql(event)
return if event.payload[:name] =~ /Push::Message Load/
old_sql(event)
end
end
于 2012-11-21T12:50:46.410 に答える