Browse Source

!962 Redirects stdout in the Gunicorn process to a log file

From: @ouwenchang
Reviewed-by: @lilongfei15,@wangyue01
Signed-off-by: @wangyue01
tags/v1.1.0
mindspore-ci-bot Gitee 5 years ago
parent
commit
593094e2e7
1 changed files with 9 additions and 17 deletions
  1. +9
    -17
      mindinsight/backend/run.py

+ 9
- 17
mindinsight/backend/run.py View File

@@ -228,18 +228,8 @@ class GunicornLogger(Logger):
"""Get log format."""
return time.strftime('[%Y-%m-%d-%H:%M:%S %z]')

def rewrite_stdout(self, message):
if message.strip():
self.error_log.info(message)

def rewrite_stderr(self, message):
if message.strip():
self.error_log.error(message)

def setup(self, cfg):
"""Rewrite the setup method of Logger, and we don't need to do anything"""
sys.stdout.write = self.rewrite_stdout
sys.stderr.write = self.rewrite_stderr


def _get_all_ip_addresses(host):
@@ -263,8 +253,6 @@ def _get_all_ip_addresses(host):

def start():
"""Start web service."""
errorlog_abspath = _get_error_log_path()

gunicorn_conf_file = os.path.join(WEB_CONFIG_DIR, "gunicorn_conf.py")
cmd = "gunicorn " \
"-b {host}:{port} {app_module} " \
@@ -279,9 +267,12 @@ def start():
log_format=settings.GUNICORN_ACCESS_FORMAT
)

log_size = _get_file_size(errorlog_abspath)
error_log_abspath = _get_error_log_path()
log_size = _get_file_size(error_log_abspath)

console = setup_logger('mindinsight', 'console', console=True, logfile=False, formatter='%(message)s')
# Init the logger file
setup_logger('gunicorn', 'error')
log_handler = open(error_log_abspath, 'a+')

# start server
process = subprocess.Popen(
@@ -289,7 +280,7 @@ def start():
shell=False,
# Change stdout to DEVNULL to prevent broken pipe error when creating new processes.
stdin=subprocess.DEVNULL,
stdout=None,
stdout=log_handler,
stderr=subprocess.STDOUT
)

@@ -297,11 +288,12 @@ def start():
time.sleep(1)

# check if gunicorn application is running
console = setup_logger('mindinsight', 'console', console=True, logfile=False, formatter='%(message)s')
if process.poll() is not None:
console.error("Start MindInsight failed. See log for details.")
console.error("Start MindInsight failed. See log for details, log path: %s.", error_log_abspath)
sys.exit(1)
else:
state_result = _check_server_start_stat(errorlog_abspath, log_size)
state_result = _check_server_start_stat(error_log_abspath, log_size)
# print gunicorn start state to stdout
label = 'Web address:'
for ip in _get_all_ip_addresses(settings.HOST):


Loading…
Cancel
Save