Class: ZgcpToolkit::Logger
- Inherits:
-
Object
- Object
- ZgcpToolkit::Logger
- Extended by:
- Dry::Configurable
- Defined in:
- lib/zgcp_toolkit/logger.rb,
lib/zgcp_toolkit/logger/stdout.rb,
lib/zgcp_toolkit/logger/google_cloud_logging.rb
Defined Under Namespace
Classes: Error, GoogleCloudLogging, InvalidLogName, Stdout, UnsupportedLogType
Constant Summary collapse
- REGEX_VALID_NAME =
/^[a-z0-9_]+$/.freeze
- AVAILABLE_LOGGERS =
{ std_out: ZgcpToolkit::Logger::Stdout, google_cloud_logging: ZgcpToolkit::Logger::GoogleCloudLogging }
- DEFAULT_BACKTRACE_LIMIT =
10
Instance Attribute Summary collapse
-
#backtrace_limit ⇒ Object
Returns the value of attribute backtrace_limit.
-
#log_name ⇒ Object
readonly
Returns the value of attribute log_name.
-
#loggers ⇒ Object
readonly
Returns the value of attribute loggers.
Class Method Summary collapse
Instance Method Summary collapse
- #error_request(error, request, **args) ⇒ Object
- #flush! ⇒ Object
-
#initialize(log_name) ⇒ Logger
constructor
A new instance of Logger.
Constructor Details
#initialize(log_name) ⇒ Logger
Returns a new instance of Logger.
61 62 63 64 65 |
# File 'lib/zgcp_toolkit/logger.rb', line 61 def initialize(log_name) @log_name = log_name @backtrace_limit = DEFAULT_BACKTRACE_LIMIT @loggers = ZgcpToolkit::Logger.registered_loggers.map { |logger| logger.new(log_name) } end |
Instance Attribute Details
#backtrace_limit ⇒ Object
Returns the value of attribute backtrace_limit.
58 59 60 |
# File 'lib/zgcp_toolkit/logger.rb', line 58 def backtrace_limit @backtrace_limit end |
#log_name ⇒ Object (readonly)
Returns the value of attribute log_name.
59 60 61 |
# File 'lib/zgcp_toolkit/logger.rb', line 59 def log_name @log_name end |
#loggers ⇒ Object (readonly)
Returns the value of attribute loggers.
59 60 61 |
# File 'lib/zgcp_toolkit/logger.rb', line 59 def loggers @loggers end |
Class Method Details
.create(log_name) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/zgcp_toolkit/logger.rb', line 26 def create(log_name) raise InvalidLogName, "Log name is invalid. Log name regex is #{REGEX_VALID_NAME.inspect}" unless valid_name?(log_name.to_s) logger = Logger.new(log_name.to_s) begin yield(logger) if block_given? rescue StandardError => e Google::Cloud::ErrorReporting.report e end logger end |
.report_error_request(error, request) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/zgcp_toolkit/logger.rb', line 40 def report_error_request(error, request) = ZgcpToolkit::Formatter::Request.new.format_for_report(request) Google::Cloud::ErrorReporting.report error do |event| event. = event. + "\n\n" + end end |
Instance Method Details
#error_request(error, request, **args) ⇒ Object
88 89 90 91 92 |
# File 'lib/zgcp_toolkit/logger.rb', line 88 def error_request(error, request, **args) filter_request_params = ZgcpToolkit::Formatter::Request.new.call(request) error({ message: error., backtrace: error.backtrace.first(backtrace_limit) }.merge!(filter_request_params).merge!(args)) end |
#flush! ⇒ Object
94 95 96 |
# File 'lib/zgcp_toolkit/logger.rb', line 94 def flush! loggers.each { |a| a.flush! } end |