bin/rflow in rflow-1.0.0 vs bin/rflow in rflow-1.0.1
- old
+ new
@@ -67,150 +67,137 @@
# Now require rflow because the following parts of the startup require
# pieces (usually RFlow::Configuration or RFlow.logger)
begin
require 'rflow'
rescue Exception => e
- STDERR.puts "Error loading RFlow: #{e.class} - #{e.message}"
+ STDERR.puts "Error loading RFlow: #{e.class} - #{e.message}\n#{e.backtrace.join("\n")}"
exit 1
end
-# Set up the startup logging, which is distinct from the runtime
-# logging that is defined in the config database. The startup logging
-# will always go to STDOUT, as well as to the file specified with the
-# '-l' parameter
-startup_logger = Log4r::Logger.new 'startup'
-startup_logger.add Log4r::StdoutOutputter.new('startup_stdout', :formatter => RFlow::Logger::LOG_PATTERN_FORMATTER)
-startup_logger.level = Log4r::LNAMES.index options[:startup_log_level].to_s
-Log4r::NDC.push('startup')
+# Set up the startup logging, which is distinct from the runtime logging that
+# is defined in the config database. The startup logging will always go to
+# STDOUT, as well as to the file specified with the '-l' parameter
+#
+# This logging setup will be used while we call into RFlow to check on or setup
+# things, like the config database. We want those log messages to go to the
+# startup log when setting up. The running log will transition to what is
+# specified in the config database.
+RFlow.logger.reconfigure({'rflow.application_name' => 'startup',
+ 'rflow.log_level' => options[:startup_log_level].to_s,
+ 'rflow.log_file_path' => options[:startup_log_file_path]}, true)
-if options[:startup_log_file_path]
- begin
- startup_logger.add Log4r::FileOutputter.new('startup_file', :filename => options[:startup_log_file_path], :formatter => RFlow::Logger::LOG_PATTERN_FORMATTER)
- rescue Exception => e
- startup_logger.fatal "Log file '#{options[:startup_log_file_path]}' problem: #{e.message}"
- exit 1
- end
-end
-
command = ARGV[0]
unless ['start', 'stop', 'status', 'load'].include? command
- startup_logger.fatal "Command needs to be one of [start|stop|status|load]\n#{option_parser.help}"
+ RFlow.logger.fatal "Command needs to be one of [start|stop|status|load]\n#{option_parser.help}"
exit 1
end
if options[:config_file_path] && command != 'load'
- startup_logger.fatal "Config file only valid for 'load' command"
+ RFlow.logger.fatal "Config file only valid for 'load' command"
exit 1
end
unless options[:config_database_path]
- startup_logger.warn "Config database not specified, using default 'config.sqlite'"
+ RFlow.logger.warn "Config database not specified, using default 'config.sqlite'"
options[:config_database_path] = File.expand_path(File.join(Dir.getwd, 'config.sqlite'))
end
-# Set the standard logger to the startup one in the case that we need
-# to call into RFlow to check on or setup things, like the config
-# database. We want those log messages to go to the startup log when
-# setting up. The running log will transition to what is specified in
-# the config database
-RFlow.logger = startup_logger
-
case command
when 'load'
# Load the database with the config file, if it exists. Will
# otherwise default values (not very useful)
if options[:config_file_path]
unless File.exist? options[:config_file_path]
- startup_logger.fatal "Config file '#{options[:config_file_path]}' not found\n#{option_parser.help}"
+ RFlow.logger.fatal "Config file '#{options[:config_file_path]}' not found\n#{option_parser.help}"
exit 1
end
unless File.readable? options[:config_file_path]
- startup_logger.fatal "Config file '#{options[:config_file_path]}' not readable\n#{option_parser.help}"
+ RFlow.logger.fatal "Config file '#{options[:config_file_path]}' not readable\n#{option_parser.help}"
exit 1
end
end
if File.exist? options[:config_database_path]
- startup_logger.fatal "Config database '#{options[:config_database_path]}' exists, exiting to prevent accidental overwrite from config file '#{options[:config_file_path]}'"
+ RFlow.logger.fatal "Config database '#{options[:config_database_path]}' exists, exiting to prevent accidental overwrite from config file '#{options[:config_file_path]}'"
exit 1
end
- startup_logger.info "Creating config database '#{options[:config_database_path]}'"
+ RFlow.logger.info "Creating config database '#{options[:config_database_path]}'"
begin
config = RFlow::Configuration::initialize_database(options[:config_database_path], options[:config_file_path])
rescue Exception => e
- startup_logger.fatal "Error initializing configuration database: #{e.message}: #{e.backtrace.join "\n"}"
+ RFlow.logger.fatal "Error initializing configuration database: #{e.message}: #{e.backtrace.join "\n"}"
exit 1
end
- startup_logger.warn "Successfully initialized database '#{options[:config_database_path]}' with '#{options[:config_file_path]}'"
- startup_logger.debug config.to_s
+ RFlow.logger.warn "Successfully initialized database '#{options[:config_database_path]}' with '#{options[:config_file_path]}'"
+ RFlow.logger.debug config.to_s
exit 0
end
# Load the database config and start setting up environment
begin
config = RFlow::Configuration.new(options[:config_database_path])
rescue Exception => e
- startup_logger.fatal "Error loading config database: #{e.class} - #{e.message}"
+ RFlow.logger.fatal "Error loading config database: #{e.class} - #{e.message}"
exit 1
end
Dir.chdir(File.dirname(options[:config_database_path]))
Dir.chdir(config['rflow.application_directory_path'])
pid_file = RFlow::PIDFile.new(config['rflow.pid_file_path'])
case command
when 'stop'
if pid_file.running?
- startup_logger.info "#{config['rflow.application_name']} running, process #{pid_file.read} found in #{pid_file.to_s}, terminating"
+ RFlow.logger.info "#{config['rflow.application_name']} running, process #{pid_file.read} found in #{pid_file.to_s}, terminating"
# TODO: check if it actually shut down
pid_file.signal(:INT)
else
- startup_logger.warn "#{config['rflow.application_name']} process not found in #{pid_file.to_s}"
+ RFlow.logger.warn "#{config['rflow.application_name']} process not found in #{pid_file.to_s}"
exit 1
end
exit 0
when 'status'
unless pid_file.running?
- startup_logger.error "#{config['rflow.application_name']} process not found in #{pid_file.to_s}"
+ RFlow.logger.error "#{config['rflow.application_name']} process not found in #{pid_file.to_s}"
exit 1
end
- startup_logger.info "#{config['rflow.application_name']} running, process #{pid_file.read} found in #{pid_file.to_s}"
+ RFlow.logger.info "#{config['rflow.application_name']} running, process #{pid_file.read} found in #{pid_file.to_s}"
exit 0
when 'start'
if pid_file.running?
- startup_logger.error "#{config['rflow.application_name']} already running, process #{pid_file.read} found in #{pid_file.to_s}"
+ RFlow.logger.error "#{config['rflow.application_name']} already running, process #{pid_file.read} found in #{pid_file.to_s}"
exit 1
end
end
# We should have eliminated all commands but 'start' at this point
# require all the gem extensions
options[:gems].each do |extension_gem|
- startup_logger.info "Requiring #{extension_gem}"
+ RFlow.logger.info "Requiring #{extension_gem}"
require extension_gem
end
# load all the file extensions
options[:extensions_file_paths].each do |extensions_file_path|
- startup_logger.info "Loading #{extensions_file_path}"
+ RFlow.logger.info "Loading #{extensions_file_path}"
unless File.readable? extensions_file_path
- startup_logger.fatal "Extensions file ('#{Dir.getwd}') '#{extensions_file_path}' not reabable\n#{option_parser.help}"
+ RFlow.logger.fatal "Extensions file ('#{Dir.getwd}') '#{extensions_file_path}' not reabable\n#{option_parser.help}"
exit 1
end
load extensions_file_path
end
# Start the flow
begin
RFlow.run! options[:config_database_path], options[:daemonize]
rescue Exception => e
- startup_logger.fatal "Error running rflow: #{e.class}: #{e.message}"
+ RFlow.logger.fatal "Error running rflow: #{e.class}: #{e.message}"
exit(1)
end
__END__