diff options
author | Terence Lee <hone02@gmail.com> | 2013-03-15 04:07:22 -0700 |
---|---|---|
committer | Terence Lee <hone02@gmail.com> | 2013-03-15 10:05:10 -0700 |
commit | b7d9d6e2cd5082d269dafbc0316e2107febe1451 (patch) | |
tree | 11766be91ed229cf8bd409f86f2022dd698a560d | |
parent | b601399b72ab56cc01368f02615af99f45d14f02 (diff) | |
download | rails-b7d9d6e2cd5082d269dafbc0316e2107febe1451.tar.gz rails-b7d9d6e2cd5082d269dafbc0316e2107febe1451.tar.bz2 rails-b7d9d6e2cd5082d269dafbc0316e2107febe1451.zip |
make new rails apps log to STDOUT
-rw-r--r-- | activesupport/lib/active_support/tagged_logging.rb | 8 | ||||
-rw-r--r-- | activesupport/test/tagged_logging_test.rb | 11 | ||||
-rw-r--r-- | railties/CHANGELOG.md | 4 | ||||
-rw-r--r-- | railties/lib/rails/application/bootstrap.rb | 6 | ||||
-rw-r--r-- | railties/lib/rails/generators/rails/app/templates/config/application.rb | 2 | ||||
-rw-r--r-- | railties/test/application/configuration_test.rb | 21 |
6 files changed, 47 insertions, 5 deletions
diff --git a/activesupport/lib/active_support/tagged_logging.rb b/activesupport/lib/active_support/tagged_logging.rb index 18bc919734..09bfc95231 100644 --- a/activesupport/lib/active_support/tagged_logging.rb +++ b/activesupport/lib/active_support/tagged_logging.rb @@ -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 diff --git a/activesupport/test/tagged_logging_test.rb b/activesupport/test/tagged_logging_test.rb index 27f629474e..0f5b2cba8f 100644 --- a/activesupport/test/tagged_logging_test.rb +++ b/activesupport/test/tagged_logging_test.rb @@ -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 diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index 60a823de15..9e9d7e9009 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -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 diff --git a/railties/lib/rails/application/bootstrap.rb b/railties/lib/rails/application/bootstrap.rb index 62d57c0cc6..2a845bca17 100644 --- a/railties/lib/rails/application/bootstrap.rb +++ b/railties/lib/rails/application/bootstrap.rb @@ -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 diff --git a/railties/lib/rails/generators/rails/app/templates/config/application.rb b/railties/lib/rails/generators/rails/app/templates/config/application.rb index daf399a538..2df2fa9a6a 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/application.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/application.rb @@ -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 diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb index 7b45623f6c..40000b0ce6 100644 --- a/railties/test/application/configuration_test.rb +++ b/railties/test/application/configuration_test.rb @@ -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 |