From 5f4e9042dc6937400d37b4cc61c4710486538030 Mon Sep 17 00:00:00 2001 From: SiJam-s <83022003+SiJam-s@users.noreply.github.com> Date: Sat, 13 May 2023 17:47:53 +0200 Subject: [PATCH] custom logger (bozza) --- package.json | 1 + src/api/HttpClient.ts | 15 ++++++++------- src/utils/logger.ts | 37 +++++++++++++++++++++++++++++++++++++ tsconfig.json | 1 - yarn.lock | 5 +++++ 5 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 src/utils/logger.ts diff --git a/package.json b/package.json index ca124e91..9a88fbe5 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "react-native-dropdown-select-list": "^2.0.4", "react-native-gesture-handler": "~2.9.0", "react-native-imaged-card-view": "^0.0.11", + "react-native-logs": "^5.0.1", "react-native-maps": "1.3.2", "react-native-modal": "^13.0.1", "react-native-modal-datetime-picker": "^14.0.1", diff --git a/src/api/HttpClient.ts b/src/api/HttpClient.ts index 2055441b..71f54a27 100644 --- a/src/api/HttpClient.ts +++ b/src/api/HttpClient.ts @@ -10,6 +10,7 @@ import { PolimiToken, PoliNetworkToken, Tokens } from "contexts/login" import AsyncStorage from "@react-native-async-storage/async-storage" import { wait } from "utils/functions" import { Alert } from "react-native" +import { httpClientLog } from "utils/logger" /*Docs used to make this: Singleton: @@ -130,7 +131,7 @@ export class HttpClient extends EventEmitter { private constructor(baseUrlPoliNetwork: string, baseUrlPolimi: string) { super() - console.log("HttpClient constructor called") + httpClientLog.debug("HttpClient constructor called") this.poliNetworkInstance = axios.create({ baseURL: baseUrlPoliNetwork, timeout: 30000, @@ -226,11 +227,11 @@ export class HttpClient extends EventEmitter { if (success) { return instance(config) } else { - console.warn("Error: could not refresh Polimi token") - console.warn("Error:") - console.warn(error) - console.warn("Call config:") - console.warn(JSON.stringify(config)) + httpClientLog.error("Error: could not refresh Polimi token") + httpClientLog.error("Error:") + httpClientLog.error(error) + httpClientLog.error("Call config:") + httpClientLog.error(JSON.stringify(config)) Alert.alert( "An error has occurred while refreshing Polimi token", `The call to ${ @@ -425,7 +426,7 @@ export class HttpClient extends EventEmitter { this.emit("login") this.emit("login_event", true) } else { - console.log("No tokens found in local storage") + httpClientLog.info("No tokens found in local storage") } } /** diff --git a/src/utils/logger.ts b/src/utils/logger.ts new file mode 100644 index 00000000..67bd2c31 --- /dev/null +++ b/src/utils/logger.ts @@ -0,0 +1,37 @@ +import { consoleTransport, logger } from "react-native-logs" + +const config = { + levels: { + debug: 0, + info: 1, + warn: 2, + error: 3, + }, + severity: "debug", + transport: consoleTransport, + transportOptions: { + colors: { + info: "blueBright", + warn: "yellowBright", + error: "redBright", + }, + enabledExtensions: ["root", "httpClient"], + extensionColors: { + root: "magenta", + httpClient: "cyan", + // ... + }, + }, + async: true, + dateFormat: "time", + printLevel: true, + printDate: true, + enabled: true, +} + +export const log = logger.createLogger<"debug" | "info" | "warn" | "error">( + config +) +export const rootLog = log.extend("root") +export const httpClientLog = log.extend("httpClient") +// add any needed custom log... diff --git a/tsconfig.json b/tsconfig.json index 157a925b..214e9410 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,6 @@ "api": ["src/api"], "api/*": ["src/api/*"], "notifications/*": ["src/notifications/*"] - }, "forceConsistentCasingInFileNames": true } diff --git a/yarn.lock b/yarn.lock index dfdea20c..a9bd2ad8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8879,6 +8879,11 @@ react-native-imaged-card-view@^0.0.11: resolved "https://registry.yarnpkg.com/react-native-imaged-card-view/-/react-native-imaged-card-view-0.0.11.tgz#c1912ab00c4e07ab2c0a56801f930374f484cc20" integrity sha512-xVvI0mWP1SR+J61P5X649eDZXunCXtSMZ+GkGsY03vEPofnfah8q3Am2NDX9KcO6SzdNtxRJeLmDogyfj63ReQ== +react-native-logs@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-native-logs/-/react-native-logs-5.0.1.tgz#53665919587b499e22f514e50cb6a834cedba1ce" + integrity sha512-30aQugeLFfcBEKd6U4I75SKc5q5fb9Qrwv0Vnsy3jwpC716xON9SxRbBEnxoPSDJjzK527r4zi+qYqzig6lPlQ== + react-native-maps@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/react-native-maps/-/react-native-maps-1.3.2.tgz#8e30bfd9d934de02827253e5cde6c08a04f6356c"