Skip to content

Commit

Permalink
redirect output to file for msi
Browse files Browse the repository at this point in the history
  • Loading branch information
Ying Chen committed Mar 16, 2024
1 parent 1568b19 commit a2910bd
Showing 1 changed file with 21 additions and 10 deletions.
31 changes: 21 additions & 10 deletions src/promptflow/promptflow/_sdk/_service/entry.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@ def validate_port(port, force_start):
logger.warning(f"Service port {port} is used.")
raise UserErrorException(f"Service port {port} is used.")

if is_run_from_built_binary():
old_stdout = sys.stdout
old_stderr = sys.stderr
parent_dir = os.path.dirname(sys.executable)
sys.stdout = open(os.path.join(parent_dir, "output.txt"), "w")
sys.stderr = sys.stdout
print(f"output txt: {parent_dir}")
if port:
dump_port_to_config(port)
validate_port(port, args.force)
Expand All @@ -119,16 +126,20 @@ def validate_port(port, force_start):
if is_run_from_built_binary():
# For msi installer, use sdk api to start pfs since it's not supported to invoke waitress by cli directly
# after packaged by Pyinstaller.
global app
if app is None:
app, _ = create_app()
if os.environ.get(PF_SERVICE_DEBUG) == "true":
app.logger.setLevel(logging.DEBUG)
else:
app.logger.setLevel(logging.INFO)
message = f"Start Prompt Flow Service on {port}, version: {get_promptflow_sdk_version()}"
app.logger.info(message)
waitress.serve(app, host="127.0.0.1", port=port, threads=PF_SERVICE_WORKER_NUM)
try:
global app
if app is None:
app, _ = create_app()
if os.environ.get(PF_SERVICE_DEBUG) == "true":
app.logger.setLevel(logging.DEBUG)
else:
app.logger.setLevel(logging.INFO)
message = f"Start Prompt Flow Service on {port}, version: {get_promptflow_sdk_version()}"
app.logger.info(message)
waitress.serve(app, host="127.0.0.1", port=port, threads=PF_SERVICE_WORKER_NUM)
finally:
sys.stdout = old_stdout
sys.stderr = old_stderr
else:
# Start a pfs process using detach mode. It will start a new process and create a new app. So we use environment
# variable to pass the debug mode, since it will inherit parent process environment variable.
Expand Down

0 comments on commit a2910bd

Please sign in to comment.