web-dev-qa-db-ja.com

putsはコンソールに出力しません

私は [〜#〜] pow [〜#〜] for localを使用していますRails development。理由はわかりませんが、できませんprintまたはputsinformation to my development.log。i put the content to put the contentコントローラーからコンソール/ログへの変数のセット。アドバイスはありますか?

ログをtail -f logs/development.log

ありがとう!

22
trnc

putsの代わりにlogger.info()を試してください。 Railsでのロギング は非常に柔軟ですが、最も単純なツールを使用できない場合があることを意味します。

40
sarnold

デバッグを実行していて、ログにいくつかのメッセージのみを表示したい場合は、次の操作を実行できます。

Rails.logger.debug("debug::" + person.name)

そして

$ pow logs | grep debug::

これで、debug ::で始まるロギングメッセージのみが表示されます。

11
opsb

別のオプションは、Railsタグ付けロガー、 http://api.rubyonrails.org/classes/ActiveSupport/TaggedLogging.html を使用することです。

logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged('BCX') { logger.info 'Stuff' }                            # Logs "[BCX] Stuff"

$ pow logs | grep BCX
1
opsb

それでも機能しない場合は、Rubyはセミコロンを使用しません。 チェーンコマンド にのみ使用されます。 (PHPからの)筋肉メモリによる終わりなので、Rubyコンソールはまだコマンドを入力していると思っていました:

irb(main):001:0> puts "hi";
irb(main):002:0* puts "hi"
hi
hi
=> nil

これが誰かを助けることを願っています。

0
Zack Morris