+def clean_up_nicely(options, config_opts):
+ if options.pid_file != '':
+ try:
+ os.unlink(options.pid_file)
+ logging.debug('Removed pid file '+options.pid_file)
+ except OSError: pass # if we can't delete it, meh
+
+def set_up_logging(options):
+ logger = logging.getLogger()
+
+ stderr_logger = logging.StreamHandler(sys.stderr)
+ stderr_logger.setFormatter(logging.Formatter('%(levelname)s: %(message)s'))
+ logger.addHandler(stderr_logger)
+
+ if options.log_file != '':
+ try:
+ file_logger = logging.FileHandler(options.log_file)
+ file_logger.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s'))
+ logger.addHandler(file_logger)
+ except IOError, e:
+ logger.warning('unable to write to log file '+options.log_file+': '+str(e))
+
+ if options.verbose:
+ logger.setLevel(logging.DEBUG)
+ else:
+ logger.setLevel(logging.INFO)
+
+
+def become_daemon():