Class: Cayuga::Object::Logger

Inherits:
Singleton show all
Defined in:
lib/cayuga/object/logger.rb

Overview

Cayuga Object Logger noinspection RubyModuleAsSuperclassInspection

Instance Attribute Summary

Attributes inherited from Object

#configuration_name

Instance Method Summary collapse

Methods inherited from Singleton

create

Methods inherited from Object

create

Methods included from Tools::Loggable

included

Instance Method Details

#generic_log_file(name) ⇒ Object



13
14
15
16
# File 'lib/cayuga/object/logger.rb', line 13

def generic_log_file(name)
  filename = name.stringify.filenamify('.log')
  "#{factory._logs_directory}/#{filename}"
end

#log_appender(name) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/cayuga/object/logger.rb', line 32

def log_appender(name)
  all = SemanticLogger.appenders.select do |log|
    log.name == log_appender_name(name)
  end
  count = all.count
  raise "More than one log with name #{name}" if count > 1

  count == 1 ? all[0] : nil
end

#log_appender_name(name) ⇒ Object



28
29
30
# File 'lib/cayuga/object/logger.rb', line 28

def log_appender_name(name)
  name.stringify + annotation
end

#log_filename(name) ⇒ Object Also known as: []



22
23
24
# File 'lib/cayuga/object/logger.rb', line 22

def log_filename(name)
  @logs[name.symbolize]
end

#log_log!(name, filename: nil, stream: nil, filter: nil, level: :info) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/cayuga/object/logger.rb', line 46

def log_log!(name, filename: nil, stream: nil, filter: nil, level: :info)
  unless log_log?(name)
    remove_any_orphan_appender(name)
    make_appender(name, filename, stream, filter, level)
    logger.info('log created', name: name, annotation: fetch_annotation)
    logger.debug('logs', log_names: log_names)
    logger.debug('logs', count: SemanticLogger.appenders.count)
  end
  log_filename(name)
end

#log_log?(name) ⇒ Boolean

Returns:

  • (Boolean)


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

def log_log?(name)
  !@logs[name.symbolize].nil?
end

#log_namesObject



18
19
20
# File 'lib/cayuga/object/logger.rb', line 18

def log_names
  @logs.keys.freeze
end