views:

1110

answers:

5

A member of my team is developing a Rails app on Windows XP. We are finding that when we run the app, either launching it within NetBeans or by opening a console and calling script/server, the Rails development log does not scroll by. There is only the Webrick startup message. The app is definitely running, but when we hit various pages in the browser we aren't seeing any logging output.

When I look at the identical app on my OS X system, logging output works as expected.

I did make sure that it's running in Rails "development" environment.

Any ideas why logging would be suppressed?

Are there config params for the environment.rb file that would affect it?

+3  A: 

Look in the log/ directory - there should be a development.log. I bet your output is there.

If it's not, make sure that directory is writable.

For how to see it while you're running: if you have git bash installed, or some other shell such as cygwin, then you can open a shell and do tail -f log/development.log which will scroll the log as it gets stuff appended to it.

Sarah Mei
Hey Sarah! Thanks, yeah, I set him up with a Git Bash console window running tail -f. However, it puzzles me that Webrick is not sending all that Rails logging output to stdout. I thought that was supposed to happen by default.
Ethan
Yeah, that is odd. When I run ruby script/server in a directory (in git bash, on XP Pro) I see the output. I tried it with and without "ruby", and even in cmd.exe. Each time it waited until it had a window-full of output to output anything, though. What version of Rails/Ruby/WEBrick? I'm on 2.3.2/1.8.6/1.3.1.
Sarah Mei
2.3.2/1.8.6/not sure about WEBrick -- I don't have access to that XP machine at the moment.
Ethan
+1  A: 

I always use log/development.log to look at the logs. Just tail -f it using cygwin or something.

Maybe your Windows environment is using WEBrick and the OS X environment is using Mongrel or other webserver. I've noticed that with some webservers the logging output is (also) written directly into the shell and with others is written only to the log files.

Thiago Arrais
+2  A: 

The Rails Configuration documentation suggests that you may have log_level set to something other than :debug in your configuration.

There is also an alternative place to view the requests: the log/development.log file in your Rails app. If nothing is written there, then your problem must be in configuration. On a *nix system I would run:

$ tail -f log/development.log

And watch the requests run by. They tell me that there is a Windows version of tail.

Andres Jaan Tack
+1  A: 

Without digging into the source for Webrick, I suspect that the amount of information displayed is by default not large. Are you sure you're running Webrick on OSX and not Mongrel?

In fact, is there a particular reason for continuing to use Webrick at all? Before the advent of Phusion Passenger, Mongrel had become the de facto front-end server of choice, and it works just fine on Windows. If you install it (gem install mongrel) then Rails will use it by default.

In my development environment, running Webrick (after I'd figured out how - it's been a long time) I got very brief output: just a record of the "GET" request. Switching to Mongrel, I got the full works: request, parameters, SQL, timings etc.

Mike Woodhouse
Thanks. That is really helpful. Yes, on my OS X machine running Mongrel. My coworker's XP system is running Webrick. I'll try installing Mongrel there.
Ethan
+2  A: 

Netbeans seems to stop displaying the dev log in the console window when the dev log gets too large. At least that was my experience.

srboisvert