Module: Taski::Logging

Defined in:
lib/taski/logging.rb

Overview

Logging module provides structured logging support for debugging and monitoring. Logging is disabled by default and has zero overhead when not configured.

Examples:

Basic setup

require 'logger'
Taski.logger = Logger.new($stderr, level: Logger::INFO)

JSON output for monitoring systems

Taski.logger = Logger.new('/var/log/taski.log')

Defined Under Namespace

Modules: Events, Levels

Class Method Summary collapse

Class Method Details

.debug(event, **kwargs) ⇒ Object

Convenience methods for each log level



86
# File 'lib/taski/logging.rb', line 86

def debug(event, **kwargs) = log(Levels::DEBUG, event, **kwargs)

.error(event, **kwargs) ⇒ Object



89
# File 'lib/taski/logging.rb', line 89

def error(event, **kwargs) = log(Levels::ERROR, event, **kwargs)

.info(event, **kwargs) ⇒ Object



87
# File 'lib/taski/logging.rb', line 87

def info(event, **kwargs) = log(Levels::INFO, event, **kwargs)

.log(level, event, task: nil, **data) ⇒ Object

Log a structured event. No-op if logger is nil.

Parameters:

  • level (Integer)

    Log level (DEBUG, INFO, WARN, ERROR)

  • event (String)

    Event type constant

  • task (String, nil) (defaults to: nil)

    Task class name

  • data (Hash)

    Additional event data



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/taski/logging.rb', line 66

def log(level, event, task: nil, **data)
  logger = Taski.logger
  return unless logger

  entry = build_entry(event, task, data)
  message = entry.to_json

  case level
  when Levels::DEBUG
    logger.debug(message)
  when Levels::INFO
    logger.info(message)
  when Levels::WARN
    logger.warn(message)
  when Levels::ERROR
    logger.error(message)
  end
end

.warn(event, **kwargs) ⇒ Object



88
# File 'lib/taski/logging.rb', line 88

def warn(event, **kwargs) = log(Levels::WARN, event, **kwargs)