trnc
trnc

Reputation: 21577

puts doesn't print stuff to console

i'm using POW for local rails development. i don't know why, but i can't print or puts information to my development.log. i want to puts the content of variables to console / log from my controller. any advice?

i read my logs with tail -f logs/development.log

thanks!

Upvotes: 25

Views: 37440

Answers (4)

Zack Morris
Zack Morris

Reputation: 4823

For anyone who still can't get it to work, remember that Ruby doesn't use semicolons. They are only used to chain commands. I was adding them at the end due to muscle memory (coming from PHP), so the ruby console thought I was still entering commands:

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

Hope this helps someone.

Upvotes: 0

opsb
opsb

Reputation: 30211

Another option is to use the rails tagging logger, 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

Upvotes: 1

opsb
opsb

Reputation: 30211

If you're doing debugging and only want to see some messages in the logs you can do the following:

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

and

$ pow logs | grep debug::

now you'll only see logging messages that start with debug::

Upvotes: 11

sarnold
sarnold

Reputation: 104020

Instead of puts, try logger.info(). Logging in Rails is very flexible, but it does mean that you might not be able to use the simplest tools sometimes.

Upvotes: 42

Related Questions