Changeset 2459
- Timestamp:
- 10/04/05 19:47:23 (3 years ago)
- Files:
-
- tools/gauge/lib/gauge/logger.rb (modified) (4 diffs)
- tools/gauge/lib/gauge/sequential_log.rb (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tools/gauge/lib/gauge/logger.rb
r2447 r2459 1 require 'gauge/sequential_log' 2 1 3 module Gauge #:nodoc: 2 class Logger #:nodoc:4 class Logger < SequentialLog #:nodoc: 3 5 DEFAULT_MAX_SIZE = 100 * 1024 * 1024 4 6 5 attr_reader :application6 attr_reader :directory7 attr_reader :number8 7 attr_reader :max_size 9 attr_reader :name10 8 11 9 def initialize(application, directory_or_io, options={}) 12 @application = application 13 @max_size = options[:max_size] || DEFAULT_MAX_SIZE 14 15 if directory_or_io.respond_to?(:write) 16 @io = directory_or_io 17 else 18 setup_log_sequence_in(directory_or_io) 19 end 10 @max_size = options[:max_size] || DEFAULT_MAX_SIZE 11 super 20 12 end 21 13 … … 23 15 self.next! if number && size >= max_size 24 16 @io.write(data) 25 end26 27 def next!28 if number.nil?29 raise ArgumentError, "you cannot rotate a log created with an IO object"30 else31 @io.close32 @number += 133 @io = open_log34 end35 17 end 36 18 … … 41 23 private 42 24 43 def setup_log_sequence_in(directory) 25 def log_access_mode 26 "a" 27 end 28 29 def setup_log(directory) 44 30 @directory = directory 45 31 existing_logs = Dir["#{directory}/#{@application}-*.log"].sort … … 48 34 @io = open_log 49 35 end 50 51 def open_log52 @name = "#{directory}/#{@application}-%04d.log" % number53 log = File.open(name, "a")54 log.sync = true55 log56 end57 36 end 58 37 end