This file is indexed.

/usr/lib/ruby/1.8/innate/log/hub.rb is in libinnate-ruby1.8 2010.07-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
module Innate
  # Innate only provides logging via stdlib Logger to avoid bloat and
  # dependencies, you may specify multiple loggers in the Log instance of LogHub
  # to accomendate your needs, by default we log to $stderr to be compatible with
  # CGI.
  #
  # Please read the documentation of logger.rb (or even better, its source) to
  # get a feeling of how to use it correctly within Innate
  #
  # A few shortcuts:
  #
  # 1. Create logger for stderr/stdout
  #     logger = Logger.new($stdout)
  #     logger = Logger.new($stderr)
  #
  # 2. Create logger for a file
  #
  #     logger = Logger.new('test.log')
  #
  # 3. Create logger for file object
  #
  #     file = File.open('test.log', 'a+')
  #     logger = Logger.new(file)
  #
  # 4. Create logger with rotation on specified file size
  #
  #     # 10 files history, 5 MB each
  #     logger = Logger.new('test.log', 10, (5 << 20))
  #
  #     # 100 files history, 1 MB each
  #     logger = Logger.new('test.log', 100, (1 << 20))
  #
  # 5. Create a logger which ages logfiles daily/weekly/monthly
  #
  #     logger = Logger.new('test.log', 'daily')
  #     logger = Logger.new('test.log', 'weekly')
  #     logger = Logger.new('test.log', 'monthly')

  class LogHub
    include Logger::Severity
    include Optioned

    attr_accessor :loggers, :program, :active

    # +loggers+ should be a list of Logger instances
    def initialize(*loggers)
      @loggers = loggers.flatten
      @program = nil
      @active = true
      self.level = DEBUG
    end

    # set level for all loggers
    def level=(lvl)
      @loggers.each{|l| l.level = lvl }
      @level = lvl
    end

    def start; @active = true;  end
    def stop;  @active = false; end

    def method_missing(meth, *args, &block)
      eval %~
        def #{meth}(*args, &block)
          return unless @active
          args.each{|arg| @loggers.each{|logger| logger.#{meth}(arg, &block) }}
        end
      ~

      send(meth, *args, &block)
    end

    def write(*args)
      self.<<(*args)
    end
  end
end