Module: Themigrator::Logger

Includes:
FileUtils
Included in:
MigrationProgress, Migrator, UI
Defined in:
lib/themigrator/logger.rb

Constant Summary collapse

MAINLOGFILE =
'themigrator.log'.freeze

Instance Method Summary collapse

Instance Method Details

#close_loggerObject



21
22
23
# File 'lib/themigrator/logger.rb', line 21

def close_logger
  @logger.close if @logger
end

#init_logger(log_file) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/themigrator/logger.rb', line 13

def init_logger(log_file)
  @logger = ::Logger.new(log_file)
  @logger.formatter = proc do |_severity, datetime, _progname, msg|
    t = datetime.strftime('%Y-%m-%d %H:%M:%S')
    "#{t}: #{msg}\n"
  end
end

#log(msg) ⇒ Object



9
10
11
# File 'lib/themigrator/logger.rb', line 9

def log(msg)
  logger.info msg
end

#log_dir(base_dir, run_id) ⇒ Object



41
42
43
44
45
# File 'lib/themigrator/logger.rb', line 41

def log_dir(base_dir, run_id)
  dir = File.join(base_dir, 'logs', run_id)
  mkdir_p(dir, mode: 0o700)
  dir
end

#log_path(base_dir, run_id, role, action) ⇒ Object



35
36
37
38
39
# File 'lib/themigrator/logger.rb', line 35

def log_path(base_dir, run_id, role, action)
  filename = "#{role}-#{action}.log"
  directory = log_dir(base_dir, run_id)
  File.join(directory, filename)
end

#loggerObject



25
26
27
# File 'lib/themigrator/logger.rb', line 25

def logger
  @logger || ::Logger.new(STDOUT)
end

#main_log_path(base_dir, run_id) ⇒ Object



29
30
31
32
33
# File 'lib/themigrator/logger.rb', line 29

def main_log_path(base_dir, run_id)
  filename = MAINLOGFILE
  directory = log_dir(base_dir, run_id)
  File.join(directory, filename)
end