Class: Kdeploy::KdeployLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/kdeploy/logger.rb

Overview

Custom logger class for Kdeploy with colorized output

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(level: :info, file: nil) ⇒ KdeployLogger

Initialize logger with specified level and output file

Parameters:

  • level (Symbol) (defaults to: :info)

    Log level (:debug, :info, :warn, :error, :fatal)

  • file (String, IO) (defaults to: nil)

    Output file or IO stream



34
35
36
37
38
# File 'lib/kdeploy/logger.rb', line 34

def initialize(level: :info, file: nil)
  @logger = Logger.new(file || $stdout)
  @logger.level = logger_level(level)
  @logger.formatter = method(:format_message)
end

Class Attribute Details

.instanceObject

Returns the value of attribute instance.



7
8
9
# File 'lib/kdeploy/logger.rb', line 7

def instance
  @instance
end

Class Method Details

.method_missing(method_name) ⇒ Object



17
18
19
20
21
22
# File 'lib/kdeploy/logger.rb', line 17

def method_missing(method_name, ...)
  return super unless respond_to_missing?(method_name, false)

  @instance ||= new
  @instance.send(method_name, ...)
end

.respond_to_missing?(method_name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
# File 'lib/kdeploy/logger.rb', line 24

def respond_to_missing?(method_name, include_private = false)
  return true if %i[debug info warn error fatal].include?(method_name)

  super
end

.setup(level: :info, file: nil) ⇒ KdeployLogger

Set up logger instance with specified level and output file

Parameters:

  • level (Symbol) (defaults to: :info)

    Log level (:debug, :info, :warn, :error, :fatal)

  • file (String, IO) (defaults to: nil)

    Output file or IO stream

Returns:



13
14
15
# File 'lib/kdeploy/logger.rb', line 13

def setup(level: :info, file: nil)
  @instance = new(level: level, file: file)
end

Instance Method Details

#debug(message) ⇒ Object

Log debug message

Parameters:

  • message (String)

    Message to log



42
43
44
# File 'lib/kdeploy/logger.rb', line 42

def debug(message)
  @logger.debug(message)
end

#error(message) ⇒ Object

Log error message

Parameters:

  • message (String)

    Message to log



60
61
62
# File 'lib/kdeploy/logger.rb', line 60

def error(message)
  @logger.error(message)
end

#fatal(message) ⇒ Object

Log fatal message

Parameters:

  • message (String)

    Message to log



66
67
68
# File 'lib/kdeploy/logger.rb', line 66

def fatal(message)
  @logger.fatal(message)
end

#info(message) ⇒ Object

Log info message

Parameters:

  • message (String)

    Message to log



48
49
50
# File 'lib/kdeploy/logger.rb', line 48

def info(message)
  @logger.info(message)
end

#warn(message) ⇒ Object

Log warning message

Parameters:

  • message (String)

    Message to log



54
55
56
# File 'lib/kdeploy/logger.rb', line 54

def warn(message)
  @logger.warn(message)
end