From 12de88e8d7aaa8191df801d5e638a308c8cacdc8 Mon Sep 17 00:00:00 2001 From: Ben Hollis Date: Sat, 19 Oct 2013 19:54:57 -0700 Subject: [PATCH] Allow logging to be sent to a file In config.rb, you can write: logger 'middleman.log' --- middleman-core/lib/middleman-core/logger.rb | 11 +++++------ middleman-core/lib/middleman-core/util.rb | 3 +++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/middleman-core/lib/middleman-core/logger.rb b/middleman-core/lib/middleman-core/logger.rb index 11ad0dc0..51e3912e 100644 --- a/middleman-core/lib/middleman-core/logger.rb +++ b/middleman-core/lib/middleman-core/logger.rb @@ -1,15 +1,14 @@ # Use the Ruby/Rails logger -require 'active_support/core_ext/logger' +require 'active_support/notifications' +require 'active_support/buffered_logger' require 'thread' module Middleman # The Middleman Logger - class Logger < ::Logger - - # Force output to STDOUT - def initialize(log_level=1, is_instrumenting=false, target=STDOUT) - super(STDOUT) + class Logger < ActiveSupport::BufferedLogger + def initialize(log_level=1, is_instrumenting=false, target=$stdout) + super(target) self.level = log_level @instrumenting = is_instrumenting diff --git a/middleman-core/lib/middleman-core/util.rb b/middleman-core/lib/middleman-core/util.rb index 06c520dd..b0883fdc 100644 --- a/middleman-core/lib/middleman-core/util.rb +++ b/middleman-core/lib/middleman-core/util.rb @@ -48,6 +48,9 @@ module Middleman # @return [Middleman::Logger] The logger def self.logger(*args) if !@_logger || args.length > 0 + if args.length == 1 && (args.first.is_a?(::String) || args.first.respond_to?(:write)) + args = [0, false, args.first] + end @_logger = ::Middleman::Logger.new(*args) end