Module: OFlow::HasLog

Included in:
Env, Flow, Task
Defined in:
lib/oflow/haslog.rb

Overview

Adds the ability to log by sending log requests to a log Task.

Instance Method Summary collapse

Instance Method Details

#debug(msg) ⇒ Object

Logs the message if logging level is at least debug.

Parameters:

  • msg (String)

    message to log



43
44
45
# File 'lib/oflow/haslog.rb', line 43

def debug(msg)
  log_msg(:debug, msg, full_name())
end

#error(msg) ⇒ Object

Logs the message if logging level is at least error.

Parameters:

  • msg (String)

    message to display or log



55
56
57
# File 'lib/oflow/haslog.rb', line 55

def error(msg)
  log_msg(:error, msg, full_name())
end

#fatal(msg) ⇒ Object

Logs the message if logging level is at least fatal.

Parameters:

  • msg (String)

    message to display or log



67
68
69
# File 'lib/oflow/haslog.rb', line 67

def fatal(msg)
  log_msg(:fatal, msg, full_name())
end

#info(msg) ⇒ Object

Logs the message if logging level is at least info.

Parameters:

  • msg (String)

    message to display or log



49
50
51
# File 'lib/oflow/haslog.rb', line 49

def info(msg)
  log_msg(:info, msg, full_name())
end

#logTask

Returns a log Task by looking for that Task in an attribute and then in the contained Tasks or Tasks in outer Flows.

Returns:

  • (Task)

    log Task.



10
11
12
13
14
15
16
17
18
19
# File 'lib/oflow/haslog.rb', line 10

def log()
  return @log if instance_variable_defined?(:@log) && !@log.nil?
  # Log task take precedence over log variable.
  if respond_to?(:find_task)
    lg = find_task(:log)
    return lg unless lg.nil?
  end
  return @flow.log if instance_variable_defined?(:@flow) && @flow.respond_to?(:log)
  nil
end

#log=(t) ⇒ Object

Sets the log attribute.

Parameters:

  • t (Task)

    log Task



23
24
25
# File 'lib/oflow/haslog.rb', line 23

def log=(t)
  @log = t
end

#log_msg(level, msg, fn) ⇒ Object

Lower level logging method. Generally only used when one of the primary severity methods are called.

Parameters:

  • level (String)

    message severity or level

  • msg (String)

    message to log

  • fn (String)

    full name of Task or Flow calling the log function



32
33
34
35
36
37
38
39
# File 'lib/oflow/haslog.rb', line 32

def log_msg(level, msg, fn)
  lt = log()
  unless lt.nil?
    lt.receive(level, Box.new([msg, fn]))
  else
    puts "[#{fn}] #{msg}"
  end
end

#warn(msg) ⇒ Object

Logs the message if logging level is at least warn.

Parameters:

  • msg (String)

    message to display or log



61
62
63
# File 'lib/oflow/haslog.rb', line 61

def warn(msg)
  log_msg(:warn, msg, full_name())
end