dldinternet-mixlib-logging 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/dldinternet/mixlib/logging.rb +211 -205
- data/lib/dldinternet/mixlib/logging/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            !binary "U0hBMQ==":
         | 
| 3 3 | 
             
              metadata.gz: !binary |-
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                ZGNiYzY2YjhhOWYxYTlkMjFiMmQxZmUyYzE1ZTE3YjY4ZjhhMTYwNw==
         | 
| 5 5 | 
             
              data.tar.gz: !binary |-
         | 
| 6 | 
            -
                 | 
| 6 | 
            +
                ZDVhZDQ1MTYyMzk1ZWZlYzVkNmIwNGFjM2JkYzYzZjg0N2M0YzI2Mw==
         | 
| 7 7 | 
             
            SHA512:
         | 
| 8 8 | 
             
              metadata.gz: !binary |-
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 9 | 
            +
                M2ZhZDU0MDE5NGE1MGNlOGQyODdlMjUxMjYwN2NjOTMxODc3YzA4ZjA4YTAw
         | 
| 10 | 
            +
                MjA3NTA3NjBmYzBkMmM0MDk3M2Y5NzdmYmJkNmI4ZmIyOGI1MGI5ZGYwMmI4
         | 
| 11 | 
            +
                MTA0NGJlYjRkM2NhYTk2OTExM2I4NzVkMWM1Zjc3Yzk5YTNlMmY=
         | 
| 12 12 | 
             
              data.tar.gz: !binary |-
         | 
| 13 | 
            -
                 | 
| 14 | 
            -
                 | 
| 15 | 
            -
                 | 
| 13 | 
            +
                OTg4Yzc3YzVjYjg1MWMyNDdmNjY5MTliNzFlNmZlNThjMDBhYmJiNWVkM2Q1
         | 
| 14 | 
            +
                MzVmMjZjZjRiMTc2YjJkNWM2NjNmYmE3MmNjMmJlMWY4ZDk0ZTZjMTA2NWIy
         | 
| 15 | 
            +
                ZjllZjNiZTYwYzAxNDA5MmM5MzIyN2RmM2YwYjg1M2NjMTIzOGM=
         | 
| @@ -1,34 +1,36 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            unless defined? ::DLDInternet::Mixlib::Logging::ClassMethods
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
              module Mixlib
         | 
| 5 | 
            -
                module Logging
         | 
| 3 | 
            +
              require 'dldinternet/mixlib/logging/version'
         | 
| 6 4 |  | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
                   | 
| 10 | 
            -
                  require 'logging'
         | 
| 5 | 
            +
              module DLDInternet
         | 
| 6 | 
            +
                module Mixlib
         | 
| 7 | 
            +
                  module Logging
         | 
| 11 8 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
                     | 
| 14 | 
            -
             | 
| 9 | 
            +
                    require "rubygems"
         | 
| 10 | 
            +
                    require 'rubygems/gem_runner'
         | 
| 11 | 
            +
                    require 'rubygems/exceptions'
         | 
| 12 | 
            +
                    require 'logging'
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    class ::Logging::ColorScheme
         | 
| 15 | 
            +
                      def scheme
         | 
| 16 | 
            +
                        @scheme
         | 
| 17 | 
            +
                      end
         | 
| 15 18 | 
             
                    end
         | 
| 16 | 
            -
                  end
         | 
| 17 19 |  | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 20 | 
            +
                    class ::Logging::Logger
         | 
| 21 | 
            +
                      class << self
         | 
| 22 | 
            +
                        def define_log_methods( logger )
         | 
| 23 | 
            +
                          ::Logging::LEVELS.each do |name,num|
         | 
| 24 | 
            +
                            code =  "undef :#{name}  if method_defined? :#{name}\n"
         | 
| 25 | 
            +
                            code << "undef :#{name}? if method_defined? :#{name}?\n"
         | 
| 24 26 |  | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            +
                            if logger.level > num
         | 
| 28 | 
            +
                              code << <<-CODE
         | 
| 27 29 | 
             
                              def #{name}?( ) false end
         | 
| 28 30 | 
             
                              def #{name}( data = nil, trace = false ) false end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 31 | 
            +
                              CODE
         | 
| 32 | 
            +
                            else
         | 
| 33 | 
            +
                              code << <<-CODE
         | 
| 32 34 | 
             
                              def #{name}?( ) true end
         | 
| 33 35 | 
             
                              def #{name}( data = nil, trace = nil )
         | 
| 34 36 | 
             
                                caller = Kernel.caller[3]
         | 
| @@ -43,215 +45,219 @@ module DLDInternet | |
| 43 45 | 
             
                                end
         | 
| 44 46 | 
             
                                true
         | 
| 45 47 | 
             
                              end
         | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            +
                              CODE
         | 
| 49 | 
            +
                            end
         | 
| 48 50 |  | 
| 49 | 
            -
             | 
| 51 | 
            +
                            logger._meta_eval(code, __FILE__, __LINE__)
         | 
| 52 | 
            +
                          end
         | 
| 53 | 
            +
                          logger
         | 
| 50 54 | 
             
                        end
         | 
| 51 | 
            -
             | 
| 55 | 
            +
                      end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                      def logEvent(evt)
         | 
| 58 | 
            +
                        log_event evt
         | 
| 52 59 | 
             
                      end
         | 
| 53 60 | 
             
                    end
         | 
| 54 61 |  | 
| 55 | 
            -
                     | 
| 56 | 
            -
                       | 
| 62 | 
            +
                    class ::Logging::Layouts::Pattern
         | 
| 63 | 
            +
                      # Arguments to sprintf keyed to directive letters
         | 
| 64 | 
            +
                      verbose, $VERBOSE = $VERBOSE, nil
         | 
| 65 | 
            +
                      # noinspection RubyStringKeysInHashInspection
         | 
| 66 | 
            +
                      DIRECTIVE_TABLE = {
         | 
| 67 | 
            +
                          'c' => 'event.logger'.freeze,
         | 
| 68 | 
            +
                          'd' => 'format_date(event.time)'.freeze,
         | 
| 69 | 
            +
                          'F' => 'event.file'.freeze,
         | 
| 70 | 
            +
                          'l' => '::Logging::LNAMES[event.level]'.freeze,
         | 
| 71 | 
            +
                          'L' => 'event.line'.freeze,
         | 
| 72 | 
            +
                          'm' => 'format_obj(event.data)'.freeze,
         | 
| 73 | 
            +
                          'M' => 'event.method'.freeze,
         | 
| 74 | 
            +
                          'p' => 'Process.pid'.freeze,
         | 
| 75 | 
            +
                          'r' => 'Integer((event.time-@created_at)*1000).to_s'.freeze,
         | 
| 76 | 
            +
                          't' => 'Thread.current.object_id.to_s'.freeze,
         | 
| 77 | 
            +
                          'T' => 'Thread.current[:name]'.freeze,
         | 
| 78 | 
            +
                          'C' => 'event.file != "" ? "(\e[38;5;25m#{event.file}::#{event.line}\e[0m)" : ""',
         | 
| 79 | 
            +
                          '%' => :placeholder
         | 
| 80 | 
            +
                      }.freeze
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                      # Human name aliases for directives - used for colorization of tokens
         | 
| 83 | 
            +
                      # noinspection RubyStringKeysInHashInspection
         | 
| 84 | 
            +
                      COLOR_ALIAS_TABLE = {
         | 
| 85 | 
            +
                          'c' => :logger,
         | 
| 86 | 
            +
                          'd' => :date,
         | 
| 87 | 
            +
                          'm' => :message,
         | 
| 88 | 
            +
                          'p' => :pid,
         | 
| 89 | 
            +
                          'r' => :time,
         | 
| 90 | 
            +
                          'T' => :thread,
         | 
| 91 | 
            +
                          't' => :thread_id,
         | 
| 92 | 
            +
                          'F' => :file,
         | 
| 93 | 
            +
                          'L' => :line,
         | 
| 94 | 
            +
                          'M' => :method,
         | 
| 95 | 
            +
                          'X' => :mdc,
         | 
| 96 | 
            +
                          'x' => :ndc,
         | 
| 97 | 
            +
                          'C' => :file_line,
         | 
| 98 | 
            +
                      }.freeze
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                    ensure
         | 
| 101 | 
            +
                      $VERBOSE = verbose
         | 
| 57 102 | 
             
                    end
         | 
| 58 | 
            -
                  end
         | 
| 59 103 |  | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
                     | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 67 | 
            -
                        'F' => 'event.file'.freeze,
         | 
| 68 | 
            -
                        'l' => '::Logging::LNAMES[event.level]'.freeze,
         | 
| 69 | 
            -
                        'L' => 'event.line'.freeze,
         | 
| 70 | 
            -
                        'm' => 'format_obj(event.data)'.freeze,
         | 
| 71 | 
            -
                        'M' => 'event.method'.freeze,
         | 
| 72 | 
            -
                        'p' => 'Process.pid'.freeze,
         | 
| 73 | 
            -
                        'r' => 'Integer((event.time-@created_at)*1000).to_s'.freeze,
         | 
| 74 | 
            -
                        't' => 'Thread.current.object_id.to_s'.freeze,
         | 
| 75 | 
            -
                        'T' => 'Thread.current[:name]'.freeze,
         | 
| 76 | 
            -
                        'C' => 'event.file != "" ? "(\e[38;5;25m#{event.file}::#{event.line}\e[0m)" : ""',
         | 
| 77 | 
            -
                        '%' => :placeholder
         | 
| 78 | 
            -
                    }.freeze
         | 
| 79 | 
            -
             | 
| 80 | 
            -
                    # Human name aliases for directives - used for colorization of tokens
         | 
| 81 | 
            -
                    # noinspection RubyStringKeysInHashInspection
         | 
| 82 | 
            -
                    COLOR_ALIAS_TABLE = {
         | 
| 83 | 
            -
                        'c' => :logger,
         | 
| 84 | 
            -
                        'd' => :date,
         | 
| 85 | 
            -
                        'm' => :message,
         | 
| 86 | 
            -
                        'p' => :pid,
         | 
| 87 | 
            -
                        'r' => :time,
         | 
| 88 | 
            -
                        'T' => :thread,
         | 
| 89 | 
            -
                        't' => :thread_id,
         | 
| 90 | 
            -
                        'F' => :file,
         | 
| 91 | 
            -
                        'L' => :line,
         | 
| 92 | 
            -
                        'M' => :method,
         | 
| 93 | 
            -
                        'X' => :mdc,
         | 
| 94 | 
            -
                        'x' => :ndc,
         | 
| 95 | 
            -
                        'C' => :file_line,
         | 
| 96 | 
            -
                    }.freeze
         | 
| 97 | 
            -
             | 
| 98 | 
            -
                  ensure
         | 
| 99 | 
            -
                    $VERBOSE = verbose
         | 
| 100 | 
            -
                  end
         | 
| 104 | 
            +
                    class FakeLogger
         | 
| 105 | 
            +
                      def method_missing(m, *args, &block)
         | 
| 106 | 
            +
                        puts args[0]
         | 
| 107 | 
            +
                      end
         | 
| 108 | 
            +
                    end
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                    module ClassMethods
         | 
| 101 111 |  | 
| 102 | 
            -
                  class FakeLogger
         | 
| 103 | 
            -
                    def method_missing(m, *args, &block)
         | 
| 104 | 
            -
                      puts args[0]
         | 
| 105 112 | 
             
                    end
         | 
| 106 | 
            -
                  end
         | 
| 107 113 |  | 
| 114 | 
            +
                    attr        :logger
         | 
| 115 | 
            +
                    attr_reader :args
         | 
| 116 | 
            +
                    attr_reader :step
         | 
| 117 | 
            +
                    attr_reader :TODO
         | 
| 108 118 |  | 
| 109 | 
            -
             | 
| 110 | 
            -
                     | 
| 111 | 
            -
             | 
| 112 | 
            -
                       | 
| 113 | 
            -
                       | 
| 114 | 
            -
                       | 
| 115 | 
            -
             | 
| 116 | 
            -
                      #  | 
| 117 | 
            -
                       | 
| 118 | 
            -
             | 
| 119 | 
            -
             | 
| 120 | 
            -
             | 
| 121 | 
            -
             | 
| 122 | 
            -
             | 
| 123 | 
            -
             | 
| 124 | 
            -
             | 
| 125 | 
            -
             | 
| 126 | 
            -
             | 
| 127 | 
            -
             | 
| 128 | 
            -
             | 
| 129 | 
            -
             | 
| 130 | 
            -
                         | 
| 131 | 
            -
                        file =  | 
| 132 | 
            -
                        line = Integer(match[2])
         | 
| 133 | 
            -
                        modl = match[3] unless match[3].nil?
         | 
| 134 | 
            -
             | 
| 135 | 
            -
                        unless @TODO["#{file}::#{line}"]
         | 
| 136 | 
            -
                          le = ::Logging::LogEvent.new(@logger, ::Logging::LEVELS['todo'], msg, false)
         | 
| 137 | 
            -
                          @logger.logEvent(le)
         | 
| 138 | 
            -
                          @TODO["#{file}::#{line}"] = true
         | 
| 139 | 
            -
                        end
         | 
| 119 | 
            +
                    # --------------------------------------------------------------------------------
         | 
| 120 | 
            +
                    def logTodo(msg)
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                      # Regular expression used to parse out caller information
         | 
| 123 | 
            +
                      #
         | 
| 124 | 
            +
                      # * $1 == filename
         | 
| 125 | 
            +
                      # * $2 == line number
         | 
| 126 | 
            +
                      # * $3 == method name (might be nil)
         | 
| 127 | 
            +
                      caller_rgxp = %r/([-\.\/\(\)\w]+):(\d+)(?::in `(\w+)')?/o
         | 
| 128 | 
            +
                      #CALLER_INDEX = 2
         | 
| 129 | 
            +
                      caller_index = ((defined? JRUBY_VERSION and JRUBY_VERSION[%r/^1.6/]) or (defined? RUBY_ENGINE and RUBY_ENGINE[%r/^rbx/i])) ? 0 : 0
         | 
| 130 | 
            +
                      stack = Kernel.caller
         | 
| 131 | 
            +
                      return if stack.nil?
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                      match = caller_rgxp.match(stack[caller_index])
         | 
| 134 | 
            +
                      file = match[1]
         | 
| 135 | 
            +
                      line = Integer(match[2])
         | 
| 136 | 
            +
                      modl = match[3] unless match[3].nil?
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                      unless @TODO["#{file}::#{line}"]
         | 
| 139 | 
            +
                        le = ::Logging::LogEvent.new(@logger, ::Logging::LEVELS['todo'], msg, false)
         | 
| 140 | 
            +
                        @logger.logEvent(le)
         | 
| 141 | 
            +
                        @TODO["#{file}::#{line}"] = true
         | 
| 140 142 | 
             
                      end
         | 
| 143 | 
            +
                    end
         | 
| 141 144 |  | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
                        end
         | 
| 145 | 
            +
                    # -----------------------------------------------------------------------------
         | 
| 146 | 
            +
                    def logStep(msg)
         | 
| 147 | 
            +
                      logger = getLogger(@args, 'logStep')
         | 
| 148 | 
            +
                      if logger
         | 
| 149 | 
            +
                        logger.step "Resource #{@step+=1}: #{msg} ..."
         | 
| 148 150 | 
             
                      end
         | 
| 151 | 
            +
                    end
         | 
| 149 152 |  | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 153 | 
            +
                    # -----------------------------------------------------------------------------
         | 
| 154 | 
            +
                    # Set up logger
         | 
| 152 155 |  | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 155 | 
            -
             | 
| 156 | 
            +
                    def setLogger(logger)
         | 
| 157 | 
            +
                      @logger = logger
         | 
| 158 | 
            +
                    end
         | 
| 156 159 |  | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 160 | 
            +
                    def getLogger(args,from='',alogger=nil)
         | 
| 161 | 
            +
                      logger = alogger || @logger
         | 
| 162 | 
            +
                      unless logger
         | 
| 163 | 
            +
                        unless from==''
         | 
| 164 | 
            +
                          from = "#{from} - "
         | 
| 165 | 
            +
                        end
         | 
| 166 | 
            +
                        @step = 0
         | 
| 167 | 
            +
                        if args
         | 
| 168 | 
            +
                          if args.key?(:log_file) and args[:log_file]
         | 
| 169 | 
            +
                            args[:log_path] = File.dirname(args[:log_file])
         | 
| 170 | 
            +
                          elsif args[:my_name]
         | 
| 171 | 
            +
                            if args[:log_path]
         | 
| 172 | 
            +
                              args[:log_file] = "#{args[:log_path]}/#{args[:my_name]}.log"
         | 
| 173 | 
            +
                            else
         | 
| 174 | 
            +
                              args[:log_file] = "/tmp/#{args[:my_name]}.log"
         | 
| 175 | 
            +
                            end
         | 
| 162 176 | 
             
                          end
         | 
| 163 | 
            -
             | 
| 164 | 
            -
                           | 
| 165 | 
            -
                             | 
| 166 | 
            -
             | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 169 | 
            -
                                 | 
| 177 | 
            +
             | 
| 178 | 
            +
                          begin
         | 
| 179 | 
            +
                            ::Logging.init :trace, :debug, :info, :step, :warn, :error, :fatal, :todo unless defined? ::Logging::MAX_LEVEL_LENGTH
         | 
| 180 | 
            +
                            if args[:origins] and args[:origins][:log_level]
         | 
| 181 | 
            +
                              if (::Logging::LEVELS[args[:log_level].to_s] and ::Logging::LEVELS[args[:log_level].to_s] < 2)
         | 
| 182 | 
            +
                                #puts "#{args[:log_level].to_s} = #{::Logging::LEVELS[args[:log_level].to_s]}".light_yellow
         | 
| 183 | 
            +
                                puts "#{args[:origins][:log_level]} says #{args[:log_level]}".light_yellow
         | 
| 170 184 | 
             
                              else
         | 
| 171 | 
            -
                                 | 
| 185 | 
            +
                                from = ''
         | 
| 172 186 | 
             
                              end
         | 
| 173 187 | 
             
                            end
         | 
| 188 | 
            +
                            l_opts = args[:log_opts].call(::Logging::MAX_LEVEL_LENGTH) || {
         | 
| 189 | 
            +
                                :pattern      => "#{from}%d %#{::Logging::MAX_LEVEL_LENGTH}l: %m\n",
         | 
| 190 | 
            +
                                :date_pattern => '%Y-%m-%d %H:%M:%S',
         | 
| 191 | 
            +
                            }
         | 
| 192 | 
            +
                            logger = ::Logging.logger( STDOUT, l_opts)
         | 
| 193 | 
            +
                            l_opts = args[:log_opts].call(::Logging::MAX_LEVEL_LENGTH) || {
         | 
| 194 | 
            +
                                :pattern      => "#{from}%d %#{::Logging::MAX_LEVEL_LENGTH}l: %m %C\n",
         | 
| 195 | 
            +
                                :date_pattern => '%Y-%m-%d %H:%M:%S',
         | 
| 196 | 
            +
                            }
         | 
| 197 | 
            +
                            layout = ::Logging::Layouts::Pattern.new(l_opts)
         | 
| 174 198 |  | 
| 175 | 
            -
                             | 
| 176 | 
            -
                               | 
| 177 | 
            -
                               | 
| 178 | 
            -
             | 
| 179 | 
            -
             | 
| 180 | 
            -
             | 
| 181 | 
            -
                                else
         | 
| 182 | 
            -
                                  from = ''
         | 
| 183 | 
            -
                                end
         | 
| 184 | 
            -
                              end
         | 
| 185 | 
            -
                              l_opts = args[:log_opts].call(::Logging::MAX_LEVEL_LENGTH) || {
         | 
| 186 | 
            -
                                  :pattern      => "#{from}%d %#{::Logging::MAX_LEVEL_LENGTH}l: %m\n",
         | 
| 187 | 
            -
                                  :date_pattern => '%Y-%m-%d %H:%M:%S',
         | 
| 188 | 
            -
                              }
         | 
| 189 | 
            -
                              logger = ::Logging.logger( STDOUT, l_opts)
         | 
| 190 | 
            -
                              l_opts = args[:log_opts].call(::Logging::MAX_LEVEL_LENGTH) || {
         | 
| 191 | 
            -
                                  :pattern      => "#{from}%d %#{::Logging::MAX_LEVEL_LENGTH}l: %m %C\n",
         | 
| 192 | 
            -
                                  :date_pattern => '%Y-%m-%d %H:%M:%S',
         | 
| 193 | 
            -
                              }
         | 
| 194 | 
            -
                              layout = ::Logging::Layouts::Pattern.new(l_opts)
         | 
| 195 | 
            -
             | 
| 196 | 
            -
                              if args[:log_file] and args[:log_file].instance_of?(String)
         | 
| 197 | 
            -
                                dev = args[:log_file]
         | 
| 198 | 
            -
                                a_opts = Hash.new
         | 
| 199 | 
            -
                                a_opts[:filename] = dev
         | 
| 200 | 
            -
                                a_opts[:layout] = layout
         | 
| 201 | 
            -
                                a_opts.merge! l_opts
         | 
| 202 | 
            -
             | 
| 203 | 
            -
                                name = case dev
         | 
| 204 | 
            -
                                         when String; dev
         | 
| 205 | 
            -
                                         when File; dev.path
         | 
| 206 | 
            -
                                         else dev.object_id.to_s end
         | 
| 207 | 
            -
             | 
| 208 | 
            -
                                appender =
         | 
| 209 | 
            -
                                    case dev
         | 
| 210 | 
            -
                                      when String
         | 
| 211 | 
            -
                                        ::Logging::Appenders::RollingFile.new(name, a_opts)
         | 
| 212 | 
            -
                                      else
         | 
| 213 | 
            -
                                        ::Logging::Appenders::IO.new(name, dev, a_opts)
         | 
| 214 | 
            -
                                    end
         | 
| 215 | 
            -
                                logger.add_appenders appender
         | 
| 216 | 
            -
                              end
         | 
| 199 | 
            +
                            if args[:log_file] and args[:log_file].instance_of?(String)
         | 
| 200 | 
            +
                              dev = args[:log_file]
         | 
| 201 | 
            +
                              a_opts = Hash.new
         | 
| 202 | 
            +
                              a_opts[:filename] = dev
         | 
| 203 | 
            +
                              a_opts[:layout] = layout
         | 
| 204 | 
            +
                              a_opts.merge! l_opts
         | 
| 217 205 |  | 
| 218 | 
            -
                               | 
| 219 | 
            -
             | 
| 220 | 
            -
             | 
| 221 | 
            -
             | 
| 222 | 
            -
                                  :step  => :green,
         | 
| 223 | 
            -
                                  :warn  => :yellow,
         | 
| 224 | 
            -
                                  :error => :red,
         | 
| 225 | 
            -
                                  :fatal => [:red, :on_white],
         | 
| 226 | 
            -
                                  :todo  => :purple,
         | 
| 227 | 
            -
                              }).scheme
         | 
| 228 | 
            -
                              scheme[:todo]  = "\e[38;5;55m"
         | 
| 229 | 
            -
                              l_opts[:color_scheme] = 'christo'
         | 
| 230 | 
            -
                              layout = ::Logging::Layouts::Pattern.new(l_opts)
         | 
| 231 | 
            -
             | 
| 232 | 
            -
                              appender = logger.appenders[0]
         | 
| 233 | 
            -
                              appender.layout = layout
         | 
| 234 | 
            -
                              logger.remove_appenders appender
         | 
| 235 | 
            -
                              logger.add_appenders appender
         | 
| 206 | 
            +
                              name = case dev
         | 
| 207 | 
            +
                                       when String; dev
         | 
| 208 | 
            +
                                       when File; dev.path
         | 
| 209 | 
            +
                                       else dev.object_id.to_s end
         | 
| 236 210 |  | 
| 237 | 
            -
                               | 
| 238 | 
            -
             | 
| 239 | 
            -
             | 
| 240 | 
            -
             | 
| 241 | 
            -
             | 
| 242 | 
            -
             | 
| 243 | 
            -
             | 
| 244 | 
            -
                              logger  | 
| 211 | 
            +
                              appender =
         | 
| 212 | 
            +
                                  case dev
         | 
| 213 | 
            +
                                    when String
         | 
| 214 | 
            +
                                      ::Logging::Appenders::RollingFile.new(name, a_opts)
         | 
| 215 | 
            +
                                    else
         | 
| 216 | 
            +
                                      ::Logging::Appenders::IO.new(name, dev, a_opts)
         | 
| 217 | 
            +
                                  end
         | 
| 218 | 
            +
                              logger.add_appenders appender
         | 
| 245 219 | 
             
                            end
         | 
| 246 | 
            -
             | 
| 247 | 
            -
             | 
| 248 | 
            -
             | 
| 249 | 
            -
             | 
| 250 | 
            -
             | 
| 251 | 
            -
             | 
| 220 | 
            +
             | 
| 221 | 
            +
                            scheme = ::Logging::ColorScheme.new( 'christo', :levels => {
         | 
| 222 | 
            +
                                :trace => [:blue, :on_white],
         | 
| 223 | 
            +
                                :debug => :cyan,
         | 
| 224 | 
            +
                                :info  => :green,
         | 
| 225 | 
            +
                                :step  => :green,
         | 
| 226 | 
            +
                                :warn  => :yellow,
         | 
| 227 | 
            +
                                :error => :red,
         | 
| 228 | 
            +
                                :fatal => [:red, :on_white],
         | 
| 229 | 
            +
                                :todo  => :purple,
         | 
| 230 | 
            +
                            }).scheme
         | 
| 231 | 
            +
                            scheme[:todo]  = "\e[38;5;55m"
         | 
| 232 | 
            +
                            l_opts[:color_scheme] = 'christo'
         | 
| 233 | 
            +
                            layout = ::Logging::Layouts::Pattern.new(l_opts)
         | 
| 234 | 
            +
             | 
| 235 | 
            +
                            appender = logger.appenders[0]
         | 
| 236 | 
            +
                            appender.layout = layout
         | 
| 237 | 
            +
                            logger.remove_appenders appender
         | 
| 238 | 
            +
                            logger.add_appenders appender
         | 
| 239 | 
            +
             | 
| 240 | 
            +
                            logger.level = args[:log_level] ? args[:log_level] : :warn
         | 
| 241 | 
            +
                            logger.trace = true if args[:trace]
         | 
| 242 | 
            +
                            @args = args
         | 
| 243 | 
            +
                          rescue Gem::LoadError
         | 
| 244 | 
            +
                            logger = FakeLogger.new
         | 
| 245 | 
            +
                          rescue => e
         | 
| 246 | 
            +
                            # not installed
         | 
| 247 | 
            +
                            logger = FakeLogger.new
         | 
| 248 | 
            +
                          end
         | 
| 249 | 
            +
                          @TODO = {} if @TODO.nil?
         | 
| 250 | 
            +
                        end # if args
         | 
| 251 | 
            +
                        @logger = alogger || logger
         | 
| 252 | 
            +
                      end # unless logger
         | 
| 253 | 
            +
                      logger
         | 
| 254 | 
            +
                    end # getLogger
         | 
| 255 | 
            +
             | 
| 256 | 
            +
                    def included(includer)
         | 
| 257 | 
            +
                      includer.extend(ClassMethods)
         | 
| 252 258 | 
             
                    end
         | 
| 253 259 | 
             
                  end
         | 
| 254 260 | 
             
                end
         | 
| 255 261 | 
             
              end
         | 
| 256 | 
            -
            end
         | 
| 257 262 |  | 
| 263 | 
            +
            end # unless defined?
         |