From 958f1c3f795a5fdec1caa727be2fce5264022209 Mon Sep 17 00:00:00 2001 From: Travis Semple Date: Thu, 12 Dec 2024 12:41:32 -0800 Subject: [PATCH] Enhance logging to print traceback (#1858) --- jobs/ftp-poller/tasks/cas_poller_ftp.py | 3 ++- jobs/ftp-poller/tasks/cgi_feeder_poller_task.py | 3 ++- jobs/ftp-poller/tasks/eft_poller_ftp.py | 3 ++- pay-queue/devops/vaults.gcp.env | 2 +- pay-queue/src/pay_queue/resources/worker.py | 5 +++-- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/jobs/ftp-poller/tasks/cas_poller_ftp.py b/jobs/ftp-poller/tasks/cas_poller_ftp.py index c08ad9a5b..cf7897b73 100644 --- a/jobs/ftp-poller/tasks/cas_poller_ftp.py +++ b/jobs/ftp-poller/tasks/cas_poller_ftp.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """Service to manage PAYBC services.""" +import traceback from typing import List from flask import current_app @@ -53,7 +54,7 @@ def poll_ftp(cls): CASPollerFtpTask._post_process(sftp_client, payment_file_list) except Exception as e: # NOQA # pylint: disable=broad-except - current_app.logger.error(e) + current_app.logger.error(f"{{error: {str(e)}, stack_trace: {traceback.format_exc()}}}") return payment_file_list @classmethod diff --git a/jobs/ftp-poller/tasks/cgi_feeder_poller_task.py b/jobs/ftp-poller/tasks/cgi_feeder_poller_task.py index 4dbb4bcd3..86f5234ee 100644 --- a/jobs/ftp-poller/tasks/cgi_feeder_poller_task.py +++ b/jobs/ftp-poller/tasks/cgi_feeder_poller_task.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """Service to manage PAYBC services.""" +import traceback from typing import List from flask import current_app @@ -65,7 +66,7 @@ def poll_ftp(cls): ) except Exception as e: # NOQA # pylint: disable=broad-except - current_app.logger.error(e) + current_app.logger.error(f"{{error: {str(e)}, stack_trace: {traceback.format_exc()}}}") @classmethod def _move_file_to_backup(cls, sftp_client, backup_file_list): diff --git a/jobs/ftp-poller/tasks/eft_poller_ftp.py b/jobs/ftp-poller/tasks/eft_poller_ftp.py index 485ee745b..693c075e9 100644 --- a/jobs/ftp-poller/tasks/eft_poller_ftp.py +++ b/jobs/ftp-poller/tasks/eft_poller_ftp.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """Service to manage EFT TDI17 files.""" +import traceback from typing import List from flask import current_app @@ -54,7 +55,7 @@ def poll_ftp(cls): EFTPollerFtpTask._post_process(sftp_client, payment_file_list) except Exception as e: # NOQA # pylint: disable=broad-except - current_app.logger.error(e) + current_app.logger.error(f"{{error: {str(e)}, stack_trace: {traceback.format_exc()}}}") return payment_file_list @classmethod diff --git a/pay-queue/devops/vaults.gcp.env b/pay-queue/devops/vaults.gcp.env index 0fb09762d..7a611dd33 100644 --- a/pay-queue/devops/vaults.gcp.env +++ b/pay-queue/devops/vaults.gcp.env @@ -26,7 +26,7 @@ LEGISLATIVE_TIMEZONE="op://relationship/$APP_ENV/pay-api/LEGISLATIVE_TIMEZONE" ACCOUNT_SECRET_KEY="op://relationship/$APP_ENV/pay-api/ACCOUNT_SECRET_KEY" DISABLE_EJV_ERROR_EMAIL="True" DISABLE_CSV_ERROR_EMAIL="True" -IT_OPS_EMAIL='SBC_ITOperationsSupport@gov.bc.ca' +IT_OPS_EMAIL="op://relationship/$APP_ENV/pay-queue/IT_OPS_EMAIL" NOTIFY_API_URL="op://API/$APP_ENV/notify-api/NOTIFY_API_URL" NOTIFY_API_VERSION="op://API/$APP_ENV/notify-api/NOTIFY_API_VERSION" JWT_OIDC_ISSUER="op://keycloak/$APP_ENV/jwt-base/JWT_OIDC_ISSUER" diff --git a/pay-queue/src/pay_queue/resources/worker.py b/pay-queue/src/pay_queue/resources/worker.py index cbcb3092f..26bbfa9e0 100644 --- a/pay-queue/src/pay_queue/resources/worker.py +++ b/pay-queue/src/pay_queue/resources/worker.py @@ -15,6 +15,7 @@ import dataclasses import json +import traceback from http import HTTPStatus from flask import Blueprint, current_app, request @@ -57,7 +58,7 @@ def worker(): current_app.logger.warning("Invalid queue message type: %s", ce.type) return {}, HTTPStatus.OK - except Exception: # NOQA # pylint: disable=broad-except + except Exception as e: # NOQA # pylint: disable=broad-except # Catch Exception so that any error is still caught and the message is removed from the queue - current_app.logger.error("Error processing event:", exc_info=True) + current_app.logger.error(f"{{error: {str(e)}, stack_trace: {traceback.format_exc()}}}") return {}, HTTPStatus.OK