Log4r::DateFileOutputter

Additional hash arguments are:

:dirname

Directory of the log file

:date_pattern

Time.strftime format string (default is “%Y-%m-%d”)

Constants

DEFAULT_DATE_FMT

Public Class Methods

new(_name, hash={}) click to toggle source
    # File lib/log4r/outputter/datefileoutputter.rb, line 47
47:     def initialize(_name, hash={})
48:       @DatePattern = (hash[:date_pattern] or hash['date_pattern'] or
49:                       DEFAULT_DATE_FMT)
50:       @DateStamp = Time.now.strftime( @DatePattern);
51:       _dirname = (hash[:dirname] or hash['dirname'])
52:       # hash[:dirname] masks hash[:filename]
53:       if _dirname
54:         if not FileTest.directory?( _dirname)
55:           raise StandardError, "'#{_dirname}' must be a valid directory", caller
56:         end
57:       end
58: 
59:       _filename = (hash[:filename] or hash['filename'])
60:       if _filename.nil?
61:         @filebase = File.basename( $0, '.rb') + ".log"
62:       else
63:         @filebase = File.basename((hash[:filename] or hash['filename'] or ""))
64:       end
65: 
66:       # Get rid of the 'nil' in the path
67:       path = [_dirname, @filebase.sub(/(\.\w*)$/, "_#{@DateStamp}" + '\1')].compact
68:       hash[:filename] = hash['filename'] = File.join(path)
69: 
70:       super(_name, hash)
71:     end

Private Instance Methods

change() click to toggle source

change the file

     # File lib/log4r/outputter/datefileoutputter.rb, line 101
101:     def change
102:       begin
103:         @out.close
104:       rescue
105:         Logger.log_internal {
106:           "DateFileOutputter '#{@name}' could not close #{@filename}"
107:         }
108:       end
109:       makeNewFilename
110:       @out = File.new(@filename, (@trunc ? "w" : "a"))
111:       Logger.log_internal {
112:         "DateFileOutputter '#{@name}' now writing to #{@filename}"
113:       }
114:     end
makeNewFilename() click to toggle source

construct a new filename from the DateStamp

    # File lib/log4r/outputter/datefileoutputter.rb, line 84
84:     def makeNewFilename
85:         @DateStamp = Time.now.strftime( @DatePattern);
86:         @filename = File.join(File.dirname(@filename),
87:                     @filebase.sub(/(\.\w*)$/, "_#{@DateStamp}" + '\1'))
88:     end
requiresChange() click to toggle source

does the file require a change?

    # File lib/log4r/outputter/datefileoutputter.rb, line 91
91:     def requiresChange
92:       _DateStamp = Time.now.strftime( @DatePattern);
93:       if not _DateStamp == @DateStamp
94:         @DateStamp = _DateStamp
95:         return true
96:       end
97:       false
98:     end
write(data) click to toggle source

perform the write

    # File lib/log4r/outputter/datefileoutputter.rb, line 78
78:     def write(data)
79:       change if requiresChange
80:       super
81:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.