3. • id:secondlife • @hotchpotch • 舘野祐一 / Yuichi Tateno • Shibuya.js 発起人 • Asakusa.rb 所属 • fluentd コミッタ̶ • BiS, ももいろクローバーZ
別にRailsには限らないのだけど。 Railsの開発中に標準出力にデバッグ出力を出すと、サーバのログ(webrickが標準出力に吐くやつとか)と混ざってすごく見にくい。 そこでLoggerを使う。 使い方は簡単 require 'logger' class ApplicationController helper_method :d def initialize @logger= Logger.new('./logger_log.log') @logger.level = Logger::DEBUG end def d(str) @logger.debug str end end として、Loggerをセットアップ 後は好きなところで d obj.inspect とかしてやれば#{RAILS_ROOT}/logger_log.logにその出力が行われる。 tail -f logger_l
Rails のログ(development.log / test.log / production.log) は使いやすいが、なぜかログにタイムスタンプが吐き出されない。どうしてだろうと、つらつらと Rails のソースコードを眺めてみた。やはり ActiveSupport の clean_logger.rb でわざわざ時刻もなにも出力されないようにメソッドが上書きされていた。 そこで、タイムスタンプをログに出力するための hack。 # lib/logger_with_timestamp.rb class Logger private if method_defined?(:formatter=) def format_message_with_datetime(severity, timestamp, progname, msg) app_format_message(msg) end
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 This article was migrated from http://rails.office.drecom.jp/hibi/archive/35 備忘録。しょぼネタ。 こういうの苦手なんだなー。 ActiveRecord, ActionController, ActionMailerにそれぞれloggerがあって、 さらにRAILS_DEFAULT_LOGGERというのもある。 なので、下記のようにしたりすればいい。 ActionController::Base.logger.debug "ログ" RAILS_DEFAULT_LOGGER.debug "ログ" 参考: http://wiki.rails2u.com/Log
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く