lib/cryptum/log.rb in cryptum-0.0.388 vs lib/cryptum/log.rb in cryptum-0.0.389

- old
+ new

@@ -5,31 +5,35 @@ module Log # Supported Method Parameters:: # Cryptum::Log.create( # ) public_class_method def self.append(opts = {}) + level = opts[:level].to_s.downcase.to_sym + msg = opts[:msg] + which_self = opts[:which_self].to_s + event_history = opts[:event_history] + + # Always append to log file + log_file = File.open('/tmp/cryptum.log', 'a') + # Leave 10 "old" log files where # each file is ~ 1,024,000 bytes - log_file = File.open('/tmp/cryptum.log', 'a') logger = Logger.new( log_file, 10, 1_024_000 ) - level = opts[:level].to_s.downcase.to_sym - msg = opts[:msg] - which_self = opts[:which_self].to_s - event_history = opts[:event_history] + # Only attempt to exit gracefully if level == :error exit_gracefully = false case level when :debug logger.level = Logger::DEBUG when :error - logger.level = Logger::ERROR exit_gracefully = true + logger.level = Logger::ERROR when :fatal # This is reserved for: # Cryptum::UI::Exit # module(s) if StandardError is triggered. # This ensures we're not infintely attempting @@ -44,14 +48,18 @@ else raise "ERROR: Invalid log level. Valid options are:\n:info\n:warn\n:unknown\n:fatal\n:error\n:debug" end logger.datetime_format = '%Y-%m-%d %H:%M:%S.%N' + log_event = '' + log_event = event_history.order_book[:path] if event_history.respond_to?('order_book') if msg.instance_of?(Interrupt) - logger.add(logger.level, 'CTRL+C Detected...Ended Session.', which_self) + log_event += ' => CTRL+C Detected...Exiting Session.' else - logger.add(logger.level, msg, which_self) + log_event += " => #{msg}" end + + logger.add(logger.level, log_event, which_self) Cryptum::UI::Exit.gracefully(event_history: event_history) if exit_gracefully rescue Interrupt, StandardError => e raise e end