From c6f8d97b41978a491918d21c3f11b7e980e9d982 Mon Sep 17 00:00:00 2001 From: Vrishab Srivatsa <136090360+vsrivatsa-juspay@users.noreply.github.com> Date: Fri, 24 Nov 2023 17:40:42 +0530 Subject: [PATCH] docs: Added docs for logging (#46) --- README.md | 31 ++++++++++++++++++++++++++++++- docs/imgs/logging_levels.png | Bin 0 -> 34938 bytes webpack.common.js | 3 ++- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 docs/imgs/logging_levels.png diff --git a/README.md b/README.md index c346442bd..6d16b695d 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,36 @@ To see your Web Client functioning you can run the command below, this will open npm run start:playground ``` +### Logging + +Logging from the payment checkout web client is crucial for tracking and monitoring the flow of payments. It provides a transparent record of events, errors, and user interactions, aiding developers and support teams in identifying issues, debugging, and ensuring the security and reliability of payment processes. Well-implemented logging enhances traceability and facilitates a more efficient resolution of potential problems in the payment checkout experience. + +Logs are sent to the server via non-blocking Beacon API requests. This means that even if the logging endpoint configured is incorrect, it would not affect the core payment functionalities. You can find more about the structure of logging request payload in the `beaconApiCall` function in the [`OrcaLogger.res`](./src/orca-log-catcher/OrcaLogger.res#L423C7-L423C20) file. + +If you want to collect logs, you can do so by setting up an endpoint on your server to receive, process and persist logs. + +In the [`webpack.common.js`](./webpack.common.js) file, you would have to enable the logging flag, and configure the logging endpoint and log level. + +```javascipt +let logEndpoint = + sdkEnv === "prod" + ? "" + : ""; + +// Set this to true to enable logging +let enableLogging = true; + +// Choose from DEBUG, INFO, WARNING, ERROR, SILENT +let loggingLevel = "DEBUG"; +``` + +
+
+ + Understanding Logging Levels +
+
+ Now let's test the integration by making a payment from your web client! @@ -152,7 +182,6 @@ Try the steps below to get a feel of how quick the setup is: Modify the `HYPERSWITCH_SERVER_URL` key in `.env file` by adding the BE hosted url -

🤔 FAQs

diff --git a/docs/imgs/logging_levels.png b/docs/imgs/logging_levels.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ec86a508d9859086f4abc381d1343a19032aa3 GIT binary patch literal 34938 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�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