lib/log_repository_file.rb in RTALogger-0.1.4 vs lib/log_repository_file.rb in RTALogger-1.0.0

- old
+ new

@@ -1,19 +1,38 @@ require 'logger' require_relative 'log_repository' -require_relative 'log_factory_file_logger' require_relative 'log_factory_log_formatter' module RTALogger # show log items on console out put class LogRepositoryFile < LogRepository def initialize(file_path = 'log.txt', period = 'daily', shift_size = 1_048_576) super() - @file_logger = RTALogger::LogFactory.new_file_logger(file_path, period, shift_size) + @file_logger = create_ruby_logger(file_path, period, shift_size) @formatter = RTALogger::LogFactory.log_formatter_default end + def load_config(config_json) + super + + file_path = config_json['file_path'].to_s + period = config_json['roll_period'].to_s + shift_size = config_json['roll_size'].nil? ? 1_048_576 : config_json['roll_size'].to_i + @file_logger = create_ruby_logger(file_path, period, shift_size) + end + + # register :file + protected + + def create_ruby_logger(file_path, period, shift_size) + ruby_logger = Logger.new(file_path, period, shift_size) + ruby_logger.level = Logger::Severity::DEBUG + ruby_logger.formatter = proc do |_severity, _datetime, _progname, msg| + "#{msg}\n" + end + ruby_logger + end def flush_and_clear semaphore.synchronize do @log_records.each { |log_record| @file_logger.debug(@formatter.format(log_record)) } end