From dda89c441b1a3bc32e8681040a16eb94d4037060 Mon Sep 17 00:00:00 2001 From: zhangzhe Date: Wed, 14 May 2014 17:46:32 +0800 Subject: [PATCH] 1. fix a mistype of DateFileOutputter Usage doc 2. add Format directives for DateFileOutputter date_pattern 3. add validation for DateFileOutputter filename format --- lib/log4r/outputter/datefileoutputter.rb | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/log4r/outputter/datefileoutputter.rb b/lib/log4r/outputter/datefileoutputter.rb index eaea1e8..7578cea 100644 --- a/lib/log4r/outputter/datefileoutputter.rb +++ b/lib/log4r/outputter/datefileoutputter.rb @@ -6,15 +6,15 @@ # == Usage # # df_out = DateFileOutputter.new('name', -# :dirname="/tmp", :date_pattern=>"%m-%d" +# :dirname=>"/tmp", :date_pattern=>"%m-%d" # ) # # == Rate of Change # # A new logfile is created whenever the current time as formatted by the date -# pattern no longer matches the previous time. (This is a simple String +# pattern no longer matches the previous time. (This is a simple String # comparison.) So, in order to change the frequency of the rollover, just -# alter the date pattern to match how fast the files should be generated. +# alter the date pattern to match how fast the files should be generated. # For instance, to generate files by the minute, # # df_out.date_pattern = "%M" @@ -40,6 +40,12 @@ module Log4r # # [:dirname] Directory of the log file # [:date_pattern] Time.strftime format string (default is "%Y-%m-%d") + # Format directives: (details see: http://apidock.com/ruby/Time/strftime) + # %Y - Year + # %m - Month of the year + # %d - Day of the month + # %H - Hour of the day + # %M - Minute of the hour class DateFileOutputter < FileOutputter DEFAULT_DATE_FMT = "%Y-%m-%d" @@ -57,6 +63,13 @@ def initialize(_name, hash={}) end _filename = (hash[:filename] or hash['filename']) + # :filename only work with format like xx.xx, should have validate + if _filename + if not /\w+\.\w+/.match(_filename) + raise StandardError, "'#{_filename}' must be with format like xx.xx", caller + end + end + if _filename.nil? @filebase = File.basename( $0, '.rb') + ".log" else @@ -97,7 +110,7 @@ def requiresChange false end - # change the file + # change the file def change begin @out.close