Thin server: ouput rails application logs to console, as 'rails s' does
Asked Answered
D

2

9

I need to run thin start or thin -ssl ... start within the root of my rails app, and see the application logs output to the console, similar to what rails s does

Diathermy answered 3/3, 2014 at 22:16 Comment(0)
D
26

In config.ru file, located at the root of your application, add the following code, just before the line run Rails.application:

console = ActiveSupport::Logger.new($stdout)
console.formatter = Rails.logger.formatter
console.level = Rails.logger.level

Rails.logger.extend(ActiveSupport::Logger.broadcast(console))
Diathermy answered 3/3, 2014 at 22:16 Comment(3)
But this is going to affect all environments, and most likely pollute the production machine logs. I am using thin in development because it's faster than Webbrick, is it possible to target only this environment ?Insensible
Simply wrap the above code in a if Rails.env.development? blockDiathermy
@Benj This is the most marvelous answer ever provided on SO. I never thought that was possible. Now I have the colorful debug output using thin, thank you vey much.Binal
N
2

Make sure your config/environments/development.rb file is configured to print logs, in case it is not, you can add these lines there and do not forget to restart the rails server.

logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)
Nevanevada answered 29/1, 2020 at 16:4 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.