def _prompt_for_logging(self, target, oldproject):
try:
if oldproject is None:
oldproject = ''
base_logdir = self.get_logdir()
base_logdir = ''.join(base_logdir[:base_logdir.find(oldproject)])
if len(base_logdir) == 0:
base_logdir = self.get_logdir()
# Request #1699: Change to include compatible logging structure
self.io.newline()
log_dir = self.io.prompt_user("Base Log directory", base_logdir, gvars=self.fbglobalvars)
log_dir = os.path.abspath(log_dir)
# Get the list of projects
self.io.print_msg("Checking %s for projects" % (log_dir))
projects = self._get_projectlist(log_dir)
# Give the user the choice to use an existing project or create a new one
project = None
while project is None:
project = self._prompt_for_project(projects)
log_dir = os.path.join(log_dir, project, 'z'+target.replace(":", "_")) # To support IPv6 address in log files
if not self.io.prompt_yn("Set target log directory to '%s'?" % (log_dir)):
log_dir = self.io.prompt_user("Target log directory?", log_dir, gvars=self.fbglobalvars)
try:
os.makedirs(log_dir) # Fix from 3.2.0 - Don't reinvent the wheel
except:
if not os.path.exists(log_dir):
raise
self.set_logdir(log_dir)
return (project, log_dir)
except OSError:
self.io.print_warning("Access Denied to '%s'! Choose a different log directory." %(log_dir))
return (None, None)
评论列表
文章目录