Class: LogStruct::Log::Error

Inherits:
T::Struct
  • Object
show all
Extended by:
T::Sig
Includes:
Interfaces::AdditionalDataField, Interfaces::CommonFields, Interfaces::RequestFields, Shared::AddRequestFields, Shared::MergeAdditionalDataFields, Shared::SerializeCommon
Defined in:
lib/log_struct/log/error.rb

Constant Summary

Constants included from Shared::MergeAdditionalDataFields

Shared::MergeAdditionalDataFields::RESERVED_KEYS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Shared::AddRequestFields

#add_request_fields

Methods included from Shared::SerializeCommon

#as_json, #serialize, #serialize_common

Methods included from Interfaces::CommonFieldBase

#serialize

Methods included from Shared::MergeAdditionalDataFields

#merge_additional_data_fields

Constructor Details

#initialize(source:, event: Event::Error, timestamp:, level: Level::Info, path: nil, http_method: nil, source_ip: nil, user_agent: nil, referer: nil, error_class:, message:, error_message: nil, backtrace: nil, status: nil, cause_class: nil, cause_message: nil, additional_data: nil) ⇒ void

Parameters:

  • source (Source) —

    Shared/common fields

  • event (Event) (defaults to: Event::Error)
  • timestamp (Time)
  • level (Level) (defaults to: Level::Info)
  • path (String, nil) (defaults to: nil)
  • http_method (String, nil) (defaults to: nil)
  • source_ip (String, nil) (defaults to: nil)
  • user_agent (String, nil) (defaults to: nil)
  • referer (String, nil) (defaults to: nil)
  • error_class (T.class_of(Exception)) —

    Event-specific fields

  • message (String)
  • error_message (String, nil) (defaults to: nil)
  • backtrace (Array<String>, nil) (defaults to: nil)
  • status (Integer, nil) (defaults to: nil)
  • cause_class (String, nil) (defaults to: nil)
  • cause_message (String, nil) (defaults to: nil)
  • additional_data (Hash{String, Symbol => T.untyped}, nil) (defaults to: nil)


# File ''

const :source, Source
const :event, Event, default: Event::Error
const :timestamp, Time, factory: -> { Time.now }
const :level, Level, default: Level::Info
const :path, T.nilable(String), default: nil
const :http_method, T.nilable(String), default: nil
const :source_ip, T.nilable(String), default: nil
const :user_agent, T.nilable(String), default: nil
const :referer, T.nilable(String), default: nil
const :error_class, T.class_of(Exception)
const :message, String
const :error_message, T.nilable(String), default: nil
const :backtrace, T.nilable(T::Array[String]), default: nil
const :status, T.nilable(Integer), default: nil
const :cause_class, T.nilable(String), default: nil
const :cause_message, T.nilable(String), default: nil
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil

Instance Attribute Details

#additional_data ⇒ Hash{String, Symbol => T.untyped}? (readonly)

Returns the value of prop additional_data.

Returns:

  • (Hash{String, Symbol => T.untyped}, nil)


# File ''

const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil

#backtrace ⇒ Array<String>? (readonly)

Returns the value of prop backtrace.

Returns:

  • (Array<String>, nil)


# File ''

const :backtrace, T.nilable(T::Array[String]), default: nil

#cause_class ⇒ String? (readonly)

Returns the value of prop cause_class.

Returns:

  • (String, nil)


# File ''

const :cause_class, T.nilable(String), default: nil

#cause_message ⇒ String? (readonly)

Returns the value of prop cause_message.

Returns:

  • (String, nil)


# File ''

const :cause_message, T.nilable(String), default: nil

#error_class ⇒ T.class_of(Exception) (readonly)

Event-specific fields

Returns:

  • (T.class_of(Exception))


# File ''

const :error_class, T.class_of(Exception)

#error_message ⇒ String? (readonly)

Returns the value of prop error_message.

Returns:

  • (String, nil)


# File ''

const :error_message, T.nilable(String), default: nil

#event ⇒ Event (readonly)

Returns the value of prop event.

Returns:



# File ''

const :event, Event, default: Event::Error

#http_method ⇒ String? (readonly)

Returns the value of prop http_method.

Returns:

  • (String, nil)


# File ''

const :http_method, T.nilable(String), default: nil

#level ⇒ Level (readonly)

Returns the value of prop level.

Returns:



# File ''

const :level, Level, default: Level::Info

#message ⇒ String (readonly)

Returns the value of prop message.

Returns:

  • (String)


# File ''

const :message, String

#path ⇒ String? (readonly)

Returns the value of prop path.

Returns:

  • (String, nil)


# File ''

const :path, T.nilable(String), default: nil

#referer ⇒ String? (readonly)

Returns the value of prop referer.

Returns:

  • (String, nil)


# File ''

const :referer, T.nilable(String), default: nil

#source ⇒ Source (readonly)

Shared/common fields

Returns:



# File ''

const :source, Source

#source_ip ⇒ String? (readonly)

Returns the value of prop source_ip.

Returns:

  • (String, nil)


# File ''

const :source_ip, T.nilable(String), default: nil

#status ⇒ Integer? (readonly)

Returns the value of prop status.

Returns:

  • (Integer, nil)


# File ''

const :status, T.nilable(Integer), default: nil

#timestamp ⇒ Time (readonly)

Returns the value of prop timestamp.

Returns:

  • (Time)


# File ''

const :timestamp, Time, factory: -> { Time.now }

#user_agent ⇒ String? (readonly)

Returns the value of prop user_agent.

Returns:

  • (String, nil)


# File ''

const :user_agent, T.nilable(String), default: nil

Instance Method Details

#to_h ⇒ Hash{LogStruct::LogField => T.untyped}

Returns:



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/log_struct/log/error.rb', line 60

def to_h
  h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
  h[LogField::Path] = path unless path.nil?
  h[LogField::HttpMethod] = http_method unless http_method.nil?
  h[LogField::SourceIp] = source_ip unless source_ip.nil?
  h[LogField::UserAgent] = user_agent unless user_agent.nil?
  h[LogField::Referer] = referer unless referer.nil?
  h[LogField::ErrorClass] = error_class
  h[LogField::Message] = message
  h[LogField::ErrorMessage] = error_message unless error_message.nil?
  h[LogField::Backtrace] = backtrace unless backtrace.nil?
  h[LogField::Status] = status unless status.nil?
  h[LogField::CauseClass] = cause_class unless cause_class.nil?
  h[LogField::CauseMessage] = cause_message unless cause_message.nil?
  h
end