Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where does RACK log to?

Tags:

ruby

sinatra

rack

I am running a sinatra app through RACK.

To which file does the activity get logged ? Also how can I set the log file path ?

like image 686
Prakash Raman Avatar asked Mar 02 '10 20:03

Prakash Raman


2 Answers

It depends. Many developers define their app log file to app/servername.log or just to the current path where the Rack app is loaded.

Yes you can change it's path.

Usually you get a config.ru file with something like:

    log = File.new("sinatra.log", "a+")
    $stdout.reopen(log)
    $stderr.reopen(log)

    # optionally to sync logs while the server is running
    $stderr.sync = true
    $stdout.sync = true

and/or

    configure do
      LOGGER = Logger.new("sinatra.log")
      enable :logging, :dump_errors
      set :raise_errors, true
    end

in this case the log file is located under appdir/sinatra.log. But remember this code can be anywhere in your Rack app, so please seek for "log" in your application directory.

    $ cd projectname
    $ grep -ri 'log' *

have fun and post here your config.ru and/or the mainprojectfile.rb.

like image 109
include Avatar answered Oct 12 '22 02:10

include


The line of LOGGER = Logger.new("sinatra.log") in @include's answer above did not work for me.

However, an alternative listed here (along with some helpful explanations) worked for me, tested with ruby 2.5.3 and sinatra 2.0.1.

For additional info, that alternative is based on the structure presented in a Sinatra recipe.

like image 1
Aaron Thomas Avatar answered Oct 12 '22 01:10

Aaron Thomas