Class: Hanami::Logger::Formatter Private

Inherits:
Logger::Formatter
  • Object
show all
Includes:
Utils::ClassAttribute
Defined in:
lib/hanami/logger.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Hanami::Logger default formatter. This formatter returns string in key=value format.

Direct Known Subclasses

JSONFormatter

Constant Summary collapse

SEPARATOR =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Since:

  • 0.8.0

' '.freeze
NEW_LINE =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Since:

  • 0.8.0

$/

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utils::ClassAttribute

included

Instance Attribute Details

#application_name=(value) ⇒ Object (writeonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.5.0



138
139
140
# File 'lib/hanami/logger.rb', line 138

def application_name=(value)
  @application_name = value
end

Class Method Details

.eligible?(name) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

Since:

  • 0.5.0



132
133
134
# File 'lib/hanami/logger.rb', line 132

def self.eligible?(name)
  name == :default
end

.fabricate(formatter, application_name) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.5.0



116
117
118
119
120
121
122
123
124
125
# File 'lib/hanami/logger.rb', line 116

def self.fabricate(formatter, application_name)
  case formatter
  when Symbol
    (subclasses.find { |s| s.eligible?(formatter) } || self).new
  when nil
    new
  else
    formatter
  end.tap { |f| f.application_name = application_name }
end

.inherited(subclass) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.5.0



127
128
129
130
# File 'lib/hanami/logger.rb', line 127

def self.inherited(subclass)
  super
  subclasses << subclass
end

Instance Method Details

#call(severity, time, _progname, msg) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



144
145
146
147
148
149
150
151
152
# File 'lib/hanami/logger.rb', line 144

def call(severity, time, _progname, msg)
  _format({
    app:      @application_name,
    severity: severity,
    time:     time.utc
  }.merge(
    _message_hash(msg)
  ))
end