1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

make new rails apps log to STDOUT

This commit is contained in:
Terence Lee 2013-03-15 04:07:22 -07:00
parent b601399b72
commit b7d9d6e2cd
6 changed files with 47 additions and 5 deletions

View file

@ -54,6 +54,14 @@ module ActiveSupport
end
end
def self.create(f, formatter, level)
logger = ActiveSupport::Logger.new f
logger.formatter = formatter
logger = new(logger)
logger.level = ActiveSupport::Logger.const_get(level.to_s.upcase)
logger
end
def self.new(logger)
# Ensure we set a default formatter so we aren't extending nil!
logger.formatter ||= ActiveSupport::Logger::SimpleFormatter.new

View file

@ -22,6 +22,17 @@ class TaggedLoggingTest < ActiveSupport::TestCase
assert logger.formatter.respond_to?(:tagged)
end
test 'creates a tagged logger with the appropriate level and formatter' do
stringio = StringIO.new
logger = ActiveSupport::TaggedLogging.create(stringio, ActiveSupport::Logger::SimpleFormatter.new, :debug)
logger.debug("foo")
assert_not_nil logger.formatter
assert logger.formatter.respond_to?(:tagged)
assert_equal 0, logger.level
assert stringio.string.include?("foo")
end
test "tagged once" do
@logger.tagged("BCX") { @logger.info "Funky time" }
assert_equal "[BCX] Funky time\n", @output.string

View file

@ -1,5 +1,9 @@
## Rails 4.0.0 (unreleased) ##
* New rails apps log to STDOUT by default
*Terence Lee*
* Add support for generate scaffold password:digest
* adds password_digest attribute to the migration

View file

@ -39,11 +39,7 @@ INFO
f.binmode
f.sync = config.autoflush_log # if true make sure every write flushes
logger = ActiveSupport::Logger.new f
logger.formatter = config.log_formatter
logger = ActiveSupport::TaggedLogging.new(logger)
logger.level = ActiveSupport::Logger.const_get(config.log_level.to_s.upcase)
logger
logger = ActiveSupport::TaggedLogging.create(f, config.log_formatter, config.log_level)
rescue StandardError
logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDERR))
logger.level = ActiveSupport::Logger::WARN

View file

@ -32,5 +32,7 @@ module <%= app_const_base %>
# Disable the asset pipeline.
config.assets.enabled = false
<% end -%>
config.logger = ActiveSupport::TaggedLogging.create(STDOUT, config.log_formatter, config.log_level)
end
end

View file

@ -670,5 +670,26 @@ module ApplicationTests
end
end
end
test "set logger to STDOUT by default" do
stdout = capture(:stdout) do
app = build_app
controller :omg, <<-RUBY
class OmgController < ApplicationController
def index
Rails.logger.info "HI MOM"
render text: "omg"
end
end
RUBY
require "#{app_path}/config/environment"
get "/omg/index"
end
assert stdout.include?("HI MOM"), "STDOUT does not include 'HI MOM', #{stdout}"
end
end
end