From a7791c375228472f2d51705bcee01eced982df3a Mon Sep 17 00:00:00 2001
From: Ryan Bigg <radarlistener@gmail.com>
Date: Wed, 15 Dec 2010 16:17:55 +1000
Subject: Active Support coreext guide: Logger core extension documentation

---
 .../source/active_support_core_extensions.textile  | 43 ++++++++++++++++++++++
 1 file changed, 43 insertions(+)

(limited to 'railties/guides/source/active_support_core_extensions.textile')

diff --git a/railties/guides/source/active_support_core_extensions.textile b/railties/guides/source/active_support_core_extensions.textile
index 7333a81cf9..2e295aec3d 100644
--- a/railties/guides/source/active_support_core_extensions.textile
+++ b/railties/guides/source/active_support_core_extensions.textile
@@ -3359,6 +3359,49 @@ The auxiliary file is written in a standard directory for temporary files, but y
 
 NOTE: Defined in +active_support/core_ext/file/atomic.rb+.
 
+h3. Extensions to +Logger+
+
+h4. +around_[level]+
+
+Takes two arguments, a +before_message+ and +after_message+ and calls the current level method on the +Logger+ instance, passing in the +before_message+, then the specified message, then the +after_message+:
+
+<ruby>
+  logger = Logger.new("log/development.log")
+  logger.around_info("before", "after") { |logger| logger.info("during") }
+</ruby>
+
+h4. +silence+
+
+Silences every log level lesser to the specified one for the duration of the given block. Log level orders are: debug, info, error and fatal.
+
+<ruby>
+  logger = Logger.new("log/development.log")
+  logger.silence(Logger::INFO) do
+    logger.debug("In space, no one can hear you scream.")
+    logger.info("Scream all you want, small mailman!")
+  end
+</ruby>
+
+h4. +datetime_format=+
+
+Modifies the datetime format output by the formatter class associated with this logger. If the formatter class does not have a +datetime_format+ method then this is ignored.
+
+<ruby>
+  class Logger::FormatWithTime < Logger::Formatter
+    cattr_accessor(:datetime_format) { "%Y%m%d%H%m%S" }
+    
+    def self.call(severity, timestamp, progname, msg)
+      "#{timestamp.strftime(datetime_format)} -- #{String === msg ? msg : msg.inspect}\n"
+    end
+  end
+  
+  logger = Logger.new("log/development.log")
+  logger.formatter = Logger::FormatWithTime
+  logger.info("<- is the current time")
+</ruby>
+
+NOTE: Defined in +active_support/core_ext/logger.rb+.
+
 h3. Extensions to +NameError+
 
 Active Support adds +missing_name?+ to +NameError+, which tests whether the exception was raised because of the name passed as argument.
-- 
cgit v1.2.3

