Module: Padrino::Logger::Extensions

Included in:
Padrino::Logger
Defined in:
lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb

Instance Method Summary collapse

Instance Method Details

#bench(action, began_at, message, level = :debug, color = :yellow) ⇒ Object

Append a to development logger a given action with time

Examples:

logger.bench 'GET', started_at, '/blog/categories'
# => DEBUG - GET (0.0056s) - /blog/categories

Parameters:

  • action (string)

    The action

  • time (float)

    Time duration for the given action

  • string (message)

    The message that you want to log



98
99
100
101
102
103
104
105
106
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 98

def bench(action, began_at, message, level=:debug, color=:yellow)
  @_pad  ||= 8
  @_pad    = action.to_s.size if action.to_s.size > @_pad
  duration = Time.now - began_at
  color    = :red if duration > 1
  action   = colorize(action.to_s.upcase.rjust(@_pad), color)
  duration = colorize('%0.4fs' % duration, :bold, color)
  push "#{action} (#{duration}) #{message}", level
end

#colorize(string, *colors) ⇒ Object

Colorizes a string for colored console output. This is a noop and can be reimplemented to colorize the string as needed.

Parameters:

  • The (string)

    string to be colorized.

  • The (Array<Symbol>)

    colors to use. Should be applied in the order given.

See Also:

  • ColorizedLogger


161
162
163
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 161

def colorize(string, *colors)
  string
end

#colorize!Object

Turns a logger with LoggingExtensions into a logger with colorized output.

Examples:

Padrino.logger = Logger.new($stdout)
Padrino.logger.colorize!
Padrino.logger.debug("Fancy Padrino debug string")


172
173
174
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 172

def colorize!
  self.extend(Colorize)
end

#format(message, level) ⇒ Object

Formats the log message. This method is a noop and should be implemented by other logger components such as Padrino::Logger.

Parameters:

  • message (String)

    The message to format

  • level (String, Symbol)

    The log level, one of :debug, :warn…



132
133
134
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 132

def format(message, level)
  message
end

#nameObject

Generate the logging methods for Padrino.logger for each log level.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 67

Padrino::Logger::Levels.each_pair do |name, number|
  define_method(name) do |*args|
    return if number < level
    if args.size > 1
      bench(args[0], args[1], args[2], name)
    else
      push(args * '', name)
    end
  end

  define_method(:"#{name}?") do
    number >= level
  end
end

#push(message = nil, level = nil) ⇒ Object

Appends a message to the log. The methods yield to an optional block and the output of this block will be appended to the message.

Parameters:

  • message (String) (defaults to: nil)

    The message that you want write to your stream

  • level (String) (defaults to: nil)

    The level one of :debug, :warn etc…



119
120
121
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 119

def push(message = nil, level = nil)
  add(Padrino::Logger::Levels[level], format(message, level))
end

#stylized_level(level) ⇒ Object

The debug level, with some style added. May be reimplemented.

Examples:

stylized_level(:debug) => DEBUG

Parameters:



145
146
147
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 145

def stylized_level(level)
  level.to_s.upcase.rjust(7)
end