From c4fcec5f90f10de02e22e03736774afa8f51215f Mon Sep 17 00:00:00 2001 From: Richard Petersen <richard.petersen@open-xchange.com> Date: Tue, 24 May 2022 11:29:27 +0200 Subject: [PATCH] Add trace logging for the cache --- src/cache.js | 13 +++++++++++-- src/config.js | 2 ++ src/files.js | 2 +- src/index.js | 2 +- src/manifests.js | 2 +- src/redis.js | 4 ++-- src/version.js | 6 +++--- 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/cache.js b/src/cache.js index 3076a23..1d64904 100644 --- a/src/cache.js +++ b/src/cache.js @@ -1,8 +1,10 @@ +import { logger } from './logger.js' import * as redis from './redis.js' const cache = {} export async function setAsync (key, asyncValue) { + logger.trace(`[Cache] Set async ${key}`) cache[key] = asyncValue const value = await asyncValue await set(key, value) @@ -10,6 +12,7 @@ export async function setAsync (key, asyncValue) { } export function set (key, value) { + logger.trace(`[Cache] Set ${key}`) if (cache[key] === value) return cache[key] = value if (redis.isEnabled()) { @@ -28,11 +31,17 @@ export async function clear () { } export async function get (key, { method = 'get' } = {}) { - if (cache[key]) return cache[key] + if (cache[key]) { + logger.trace(`[Cache] Resolve "${key}" from memory`) + return cache[key] + } if (redis.isEnabled()) { const result = await redis.client[method]?.(key) - cache[key] = result + if (result) { + logger.trace(`[Cache] Resolve "${key}" from redis`) + cache[key] = result + } return result } } diff --git a/src/config.js b/src/config.js index b6e21d9..0719fa8 100644 --- a/src/config.js +++ b/src/config.js @@ -1,10 +1,12 @@ import fs from 'fs/promises' import yaml from 'js-yaml' +import { logger } from './logger.js' class Config { async load () { const urlsSource = await fs.readFile('./config/config.yaml', 'utf8') this._urls = yaml.load(urlsSource).baseUrls + logger.trace('[Config] Config has been loaded') } get urls () { diff --git a/src/files.js b/src/files.js index dfe10b8..6f1261e 100644 --- a/src/files.js +++ b/src/files.js @@ -43,7 +43,7 @@ export async function fetchFileWithHeaders ({ path, version }) { try { return fetchFileWithHeadersFromBaseUrl(path, module.meta.baseUrl, version) } catch (err) { - logger.debug(`File ${path} had a baseUrl but could not be found on that server: ${err}`) + logger.debug(`[Files] File ${path} had a baseUrl but could not be found on that server: ${err}`) } } diff --git a/src/index.js b/src/index.js index 6cbdee3..796ef76 100644 --- a/src/index.js +++ b/src/index.js @@ -14,7 +14,7 @@ createQueues() // Binds and listens for connections on the specified host and port root.listen(process.env.PORT, () => { - logger.info(`ui-middleware listening on port ${process.env.PORT}`) + logger.info(`[Server] ui-middleware listening on port ${process.env.PORT}`) }) process.on('uncaughtException', err => { diff --git a/src/manifests.js b/src/manifests.js index 9cb1bdd..94bd2dd 100644 --- a/src/manifests.js +++ b/src/manifests.js @@ -14,7 +14,7 @@ export async function fetchViteManifests () { try { const manifest = await result.json() for (const file in manifest) { - logger.debug(`retrieved ${file} from ${baseUrl}`) + logger.debug(`[Manifest] Retrieved ${file} from ${baseUrl}`) manifest[file].meta = manifest[file].meta || {} manifest[file].meta.baseUrl = baseUrl } diff --git a/src/redis.js b/src/redis.js index f0c513f..0c16567 100644 --- a/src/redis.js +++ b/src/redis.js @@ -20,8 +20,8 @@ const createClient = (type, options = {}) => { password: process.env.REDIS_PASSWORD, ...options }) - client.on('ready', () => logger.info(`Connected ${type} to redis on ${process.env.REDIS_HOST}`)) - client.on('error', (err) => logger.error(`Redis connect error: ${err}`)) + client.on('ready', () => logger.info(`[Redis] Connected ${type} to redis on ${process.env.REDIS_HOST}`)) + client.on('error', (err) => logger.error(`[Redis] Connect error: ${err}`)) return client } diff --git a/src/version.js b/src/version.js index 0496d32..45c3991 100644 --- a/src/version.js +++ b/src/version.js @@ -16,7 +16,7 @@ export const fetchLatestVersion = async () => { if (!version) throw new Error() return version } catch (err) { - logger.debug(`UI container at ${baseUrl} does not have meta.json. Fall back to version hash based on manifest.`) + logger.debug(`[Version] UI container at ${baseUrl} does not have meta.json. Fall back to version hash based on manifest.`) } try { const response = await fetch(new URL('manifest.json', baseUrl)) @@ -24,7 +24,7 @@ export const fetchLatestVersion = async () => { const manifest = await response.json() return hash(manifest) } catch (err) { - logger.error(`Cannot fetch manifest from ${baseUrl}. Version info will not be correct.`) + logger.error(`[Version] Cannot fetch manifest from ${baseUrl}. Version info will not be correct.`) } })) return hash(infos) @@ -51,7 +51,7 @@ export async function getLatestVersion () { export function registerLatestVersionListener (client) { if (redis.isEnabled()) { const key = getRedisKey({ name: 'updateLatestVersion' }) - client.subscribe(key, (errs, count) => logger.info(`Subscribed to ${key}.`)) + client.subscribe(key, (errs, count) => logger.info(`[Redis] Subscribed to ${key}.`)) client.on('message', async (channel, message) => { if (channel !== key) return await config.load() -- GitLab