In Files

  • logger.rb

Parent

Included Modules

Class/Module Index [+]

Quicksearch

Logger::LogDevice

Device used for logging messages.

Attributes

dev[R]
filename[R]

Public Class Methods

new(log = nil, opt = {}) click to toggle source
 
               # File logger.rb, line 632
def initialize(log = nil, opt = {})
  @dev = @filename = @shift_age = @shift_size = nil
  mon_initialize
  set_dev(log)
  if @filename
    @shift_age = opt[:shift_age] || 7
    @shift_size = opt[:shift_size] || 1048576
    @next_rotate_time = next_rotate_time(Time.now, @shift_age) unless @shift_age.is_a?(Integer)
  end
end
            

Public Instance Methods

close() click to toggle source
 
               # File logger.rb, line 664
def close
  begin
    synchronize do
      @dev.close rescue nil
    end
  rescue Exception
    @dev.close rescue nil
  end
end
            
reopen(log = nil) click to toggle source
 
               # File logger.rb, line 674
def reopen(log = nil)
  # reopen the same filename if no argument, do nothing for IO
  log ||= @filename if @filename
  if log
    synchronize do
      if @filename and @dev
        @dev.close rescue nil # close only file opened by Logger
        @filename = nil
      end
      set_dev(log)
    end
  end
  self
end
            
write(message) click to toggle source
 
               # File logger.rb, line 643
def write(message)
  begin
    synchronize do
      if @shift_age and @dev.respond_to?(:stat)
        begin
          check_shift_log
        rescue
          warn("log shifting failed. #{$!}")
        end
      end
      begin
        @dev.write(message)
      rescue
        warn("log writing failed. #{$!}")
      end
    end
  rescue Exception => ignored
    warn("log writing failed. #{ignored}")
  end
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.