From 4c9d46d7e5bc731463dbdc1d50651451585fd592 Mon Sep 17 00:00:00 2001 From: Osema Touati Date: Mon, 20 Jan 2025 20:15:31 +0100 Subject: [PATCH] fix: Fixing logger for custom S3 stream (#3900) * fix: Fixing logger for custom S3 stream * fix: adjusting s3 stream folder * fix: fixing forcedPathStyle variable name. * Update logger.ts * add S3ClientConfig types --------- Co-authored-by: Henry Heng --- packages/server/src/utils/logger.ts | 31 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/packages/server/src/utils/logger.ts b/packages/server/src/utils/logger.ts index 66078e93..207f7ce3 100644 --- a/packages/server/src/utils/logger.ts +++ b/packages/server/src/utils/logger.ts @@ -4,6 +4,7 @@ import { hostname } from 'node:os' import config from './config' // should be replaced by node-config or similar import { createLogger, transports, format } from 'winston' import { NextFunction, Request, Response } from 'express' +import { S3ClientConfig } from '@aws-sdk/client-s3' const { S3StreamLogger } = require('s3-streamlogger') @@ -17,32 +18,38 @@ if (process.env.STORAGE_TYPE === 's3') { const secretAccessKey = process.env.S3_STORAGE_SECRET_ACCESS_KEY const region = process.env.S3_STORAGE_REGION const s3Bucket = process.env.S3_STORAGE_BUCKET_NAME + const customURL = process.env.S3_ENDPOINT_URL + const forcePathStyle = process.env.S3_FORCE_PATH_STYLE === 'true' + + const s3Config: S3ClientConfig = { + region: region, + endpoint: customURL, + forcePathStyle: forcePathStyle, + credentials: { + accessKeyId: accessKeyId as string, + secretAccessKey: secretAccessKey as string + } + } s3ServerStream = new S3StreamLogger({ bucket: s3Bucket, folder: 'logs/server', - region, - access_key_id: accessKeyId, - secret_access_key: secretAccessKey, - name_format: `server-%Y-%m-%d-%H-%M-%S-%L-${hostname()}.log` + name_format: `server-%Y-%m-%d-%H-%M-%S-%L-${hostname()}.log`, + config: s3Config }) s3ErrorStream = new S3StreamLogger({ bucket: s3Bucket, folder: 'logs/error', - region, - access_key_id: accessKeyId, - secret_access_key: secretAccessKey, - name_format: `server-error-%Y-%m-%d-%H-%M-%S-%L-${hostname()}.log` + name_format: `server-error-%Y-%m-%d-%H-%M-%S-%L-${hostname()}.log`, + config: s3Config }) s3ServerReqStream = new S3StreamLogger({ bucket: s3Bucket, folder: 'logs/requests', - region, - access_key_id: accessKeyId, - secret_access_key: secretAccessKey, - name_format: `server-requests-%Y-%m-%d-%H-%M-%S-%L-${hostname()}.log.jsonl` + name_format: `server-requests-%Y-%m-%d-%H-%M-%S-%L-${hostname()}.log.jsonl`, + config: s3Config }) }