From e0c352d055897d6bd10ae567f0faeff7edaf23cf Mon Sep 17 00:00:00 2001 From: Qian Deng Date: Wed, 15 May 2019 10:28:52 +0800 Subject: [PATCH] Made logs in jobservice configurable Signed-off-by: Qian Deng --- make/harbor.yml | 2 +- make/photon/prepare/templates/jobservice/config.yml.jinja | 6 +++--- make/photon/prepare/utils/configs.py | 6 +++++- make/photon/prepare/utils/jobservice.py | 6 ++++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/make/harbor.yml b/make/harbor.yml index 3d41187b4..5a3118ce9 100644 --- a/make/harbor.yml +++ b/make/harbor.yml @@ -66,7 +66,7 @@ jobservice: # Log configurations log: - # options are debug, info, warn, error + # options are debug, info, warning, error, fatal level: info # Log files are rotated log_rotate_count times before being removed. If count is 0, old versions are removed rather than rotated. rotate_count: 50 diff --git a/make/photon/prepare/templates/jobservice/config.yml.jinja b/make/photon/prepare/templates/jobservice/config.yml.jinja index efd35bccc..496fdb6e2 100644 --- a/make/photon/prepare/templates/jobservice/config.yml.jinja +++ b/make/photon/prepare/templates/jobservice/config.yml.jinja @@ -23,9 +23,9 @@ worker_pool: #Loggers for the running job job_loggers: - name: "STD_OUTPUT" # logger backend name, only support "FILE" and "STD_OUTPUT" - level: "INFO" # INFO/DEBUG/WARNING/ERROR/FATAL + level: "{{level}}" # INFO/DEBUG/WARNING/ERROR/FATAL - name: "FILE" - level: "INFO" + level: "{{level}}" settings: # Customized settings of logger base_dir: "/var/log/jobs" sweeper: @@ -36,4 +36,4 @@ job_loggers: #Loggers for the job service loggers: - name: "STD_OUTPUT" # Same with above - level: "INFO" + level: "{{level}}" diff --git a/make/photon/prepare/utils/configs.py b/make/photon/prepare/utils/configs.py index c0b849300..ea9680f10 100644 --- a/make/photon/prepare/utils/configs.py +++ b/make/photon/prepare/utils/configs.py @@ -177,11 +177,15 @@ def parse_yaml_config(config_file_path): # Log configs + allowed_levels = ['debug', 'info', 'warning', 'error', 'fatal'] log_configs = configs.get('log') or {} config_dict['log_location'] = log_configs["location"] config_dict['log_rotate_count'] = log_configs["rotate_count"] config_dict['log_rotate_size'] = log_configs["rotate_size"] - config_dict['log_level'] = log_configs['level'] + log_level = log_configs['level'] + if log_level not in allowed_levels: + raise Exception('log level must be one of debug, info, warning, error, fatal') + config_dict['log_level'] = log_level.lower() # external DB, if external_db enabled, it will cover the database config diff --git a/make/photon/prepare/utils/jobservice.py b/make/photon/prepare/utils/jobservice.py index 492e1846a..08aac9441 100644 --- a/make/photon/prepare/utils/jobservice.py +++ b/make/photon/prepare/utils/jobservice.py @@ -14,10 +14,11 @@ jobservice_conf = os.path.join(config_dir, "jobservice", "config.yml") def prepare_job_service(config_dict): prepare_config_dir(job_config_dir) + log_level = config_dict['log_level'].upper() + # Job log is stored in data dir job_log_dir = os.path.join('/data', "job_logs") prepare_config_dir(job_log_dir) - # Render Jobservice env render_jinja( job_service_env_template_path, @@ -31,4 +32,5 @@ def prepare_job_service(config_dict): uid=DEFAULT_UID, gid=DEFAULT_GID, max_job_workers=config_dict['max_job_workers'], - redis_url=config_dict['redis_url_js']) \ No newline at end of file + redis_url=config_dict['redis_url_js'], + level=log_level) \ No newline at end of file