From f893edcc02f9b830a5d51a26e2d77166f863ad48 Mon Sep 17 00:00:00 2001 From: Atish Amte Date: Sat, 15 Jul 2023 00:49:31 +0530 Subject: [PATCH 1/5] ChatMessage Order Fixed --- packages/server/src/index.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 74c4d07e..ff7d375d 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -306,8 +306,13 @@ export class App { // Get all chatmessages from chatflowid this.app.get('/api/v1/chatmessage/:id', async (req: Request, res: Response) => { - const chatmessages = await this.AppDataSource.getRepository(ChatMessage).findBy({ - chatflowid: req.params.id + const chatmessages = await this.AppDataSource.getRepository(ChatMessage).find({ + where: { + chatflowid: req.params.id + }, + order: { + createdDate: 'ASC' + }, }) return res.json(chatmessages) }) From 78ee45565f2395f25e68aefe2769e2d0ee9eb5b2 Mon Sep 17 00:00:00 2001 From: Atish Amte Date: Sun, 16 Jul 2023 01:06:38 +0530 Subject: [PATCH 2/5] Update index.ts --- packages/server/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index ff7d375d..1c2d4ebc 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -312,7 +312,7 @@ export class App { }, order: { createdDate: 'ASC' - }, + } }) return res.json(chatmessages) }) From 551b0d515a8706f6ed452b6cef7d819543777c42 Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 17 Jul 2023 15:53:53 +0100 Subject: [PATCH 3/5] update log path --- README.md | 2 +- packages/server/README.md | 2 +- packages/server/src/utils/config.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5023a1b7..2c7002d5 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,7 @@ Flowise support different environment variables to configure your instance. You | FLOWISE_USERNAME | Username to login | String | | FLOWISE_PASSWORD | Password to login | String | | DEBUG | Print logs from components | Boolean | -| LOG_PATH | Location where log files are stored | String | `your-path/Flowise/logs` | +| LOG_PATH | Location where log files are stored | String | `your-path/Flowise/packages/server` | | LOG_LEVEL | Different levels of logs | Enum String: `error`, `info`, `verbose`, `debug` | `info` | | DATABASE_PATH | Location where database is saved | String | `your-home-dir/.flowise` | | APIKEY_PATH | Location where api keys are saved | String | `your-path/Flowise/packages/server` | diff --git a/packages/server/README.md b/packages/server/README.md index fb3a0c12..087483e1 100644 --- a/packages/server/README.md +++ b/packages/server/README.md @@ -39,7 +39,7 @@ Flowise support different environment variables to configure your instance. You | FLOWISE_USERNAME | Username to login | String | | FLOWISE_PASSWORD | Password to login | String | | DEBUG | Print logs from components | Boolean | -| LOG_PATH | Location where log files are stored | String | `your-path/Flowise/logs` | +| LOG_PATH | Location where log files are stored | String | `your-path/Flowise/packages/server` | | LOG_LEVEL | Different levels of logs | Enum String: `error`, `info`, `verbose`, `debug` | `info` | | DATABASE_PATH | Location where database is saved | String | `your-home-dir/.flowise` | | APIKEY_PATH | Location where api keys are saved | String | `your-path/Flowise/packages/server` | diff --git a/packages/server/src/utils/config.ts b/packages/server/src/utils/config.ts index 8540b3b1..b5f5884e 100644 --- a/packages/server/src/utils/config.ts +++ b/packages/server/src/utils/config.ts @@ -7,7 +7,7 @@ dotenv.config({ path: path.join(__dirname, '..', '..', '.env'), override: true } // default config const loggingConfig = { - dir: process.env.LOG_PATH ?? path.join(__dirname, '..', '..', '..', '..', 'logs'), + dir: process.env.LOG_PATH ?? path.join(__dirname, '..', '..', 'logs'), server: { level: process.env.LOG_LEVEL ?? 'info', filename: 'server.log', From 3fc496ecb0182de8a853733b3564a0aa15142aac Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 17 Jul 2023 18:11:56 +0100 Subject: [PATCH 4/5] added unwanted log urls to prevent logging node-icon api calls --- packages/server/src/index.ts | 6 +-- packages/server/src/utils/logger.ts | 71 +++++++++++++++-------------- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 1c2d4ebc..35545bc3 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -59,9 +59,6 @@ export class App { constructor() { this.app = express() - - // Add the expressRequestLogger middleware to log all requests - this.app.use(expressRequestLogger) } async initDatabase() { @@ -92,6 +89,9 @@ export class App { // Allow access from * this.app.use(cors()) + // Add the expressRequestLogger middleware to log all requests + this.app.use(expressRequestLogger) + if (process.env.FLOWISE_USERNAME && process.env.FLOWISE_PASSWORD) { const username = process.env.FLOWISE_USERNAME const password = process.env.FLOWISE_PASSWORD diff --git a/packages/server/src/utils/logger.ts b/packages/server/src/utils/logger.ts index 5d7ffedf..57d5f64a 100644 --- a/packages/server/src/utils/logger.ts +++ b/packages/server/src/utils/logger.ts @@ -57,43 +57,46 @@ const logger = createLogger({ * this.app.use(expressRequestLogger) */ export function expressRequestLogger(req: Request, res: Response, next: NextFunction): void { - const fileLogger = createLogger({ - format: combine(timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.json(), errors({ stack: true })), - defaultMeta: { - package: 'server', - request: { - method: req.method, - url: req.url, - body: req.body, - query: req.query, - params: req.params, - headers: req.headers - } - }, - transports: [ - new transports.File({ - filename: path.join(logDir, config.logging.express.filename ?? 'server-requests.log.jsonl'), - level: config.logging.express.level ?? 'debug' - }) - ] - }) + const unwantedLogURLs = ['/api/v1/node-icon/'] + if (req.url.includes('/api/v1/') && !unwantedLogURLs.some((url) => req.url.includes(url))) { + const fileLogger = createLogger({ + format: combine(timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.json(), errors({ stack: true })), + defaultMeta: { + package: 'server', + request: { + method: req.method, + url: req.url, + body: req.body, + query: req.query, + params: req.params, + headers: req.headers + } + }, + transports: [ + new transports.File({ + filename: path.join(logDir, config.logging.express.filename ?? 'server-requests.log.jsonl'), + level: config.logging.express.level ?? 'debug' + }) + ] + }) - const getRequestEmoji = (method: string) => { - const requetsEmojis: Record = { - GET: '⬇️', - POST: '⬆️', - PUT: '🖊', - DELETE: '❌' + const getRequestEmoji = (method: string) => { + const requetsEmojis: Record = { + GET: '⬇️', + POST: '⬆️', + PUT: '🖊', + DELETE: '❌' + } + + return requetsEmojis[method] || '?' } - return requetsEmojis[method] || '?' - } - - if (req.method !== 'GET') { - fileLogger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) - logger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) - } else { - fileLogger.http(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + if (req.method !== 'GET') { + fileLogger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + logger.info(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + } else { + fileLogger.http(`${getRequestEmoji(req.method)} ${req.method} ${req.url}`) + } } next() From 25b160261a92fb4f075228334f7c03113ef39271 Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 17 Jul 2023 18:25:53 +0100 Subject: [PATCH 5/5] update README --- README.md | 4 ++-- packages/server/README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2c7002d5..de7d218b 100644 --- a/README.md +++ b/README.md @@ -135,9 +135,9 @@ Flowise support different environment variables to configure your instance. You | PORT | The HTTP port Flowise runs on | Number | 3000 | | FLOWISE_USERNAME | Username to login | String | | FLOWISE_PASSWORD | Password to login | String | -| DEBUG | Print logs from components | Boolean | +| DEBUG | Print logs onto terminal/console | Boolean | | LOG_PATH | Location where log files are stored | String | `your-path/Flowise/packages/server` | -| LOG_LEVEL | Different levels of logs | Enum String: `error`, `info`, `verbose`, `debug` | `info` | +| LOG_LEVEL | Different log levels for loggers to be saved | Enum String: `error`, `info`, `verbose`, `debug` | `info` | | DATABASE_PATH | Location where database is saved | String | `your-home-dir/.flowise` | | APIKEY_PATH | Location where api keys are saved | String | `your-path/Flowise/packages/server` | | EXECUTION_MODE | Whether predictions run in their own process or the main process | Enum String: `child`, `main` | `main` | diff --git a/packages/server/README.md b/packages/server/README.md index 087483e1..3d039c26 100644 --- a/packages/server/README.md +++ b/packages/server/README.md @@ -38,9 +38,9 @@ Flowise support different environment variables to configure your instance. You | PORT | The HTTP port Flowise runs on | Number | 3000 | | FLOWISE_USERNAME | Username to login | String | | FLOWISE_PASSWORD | Password to login | String | -| DEBUG | Print logs from components | Boolean | +| DEBUG | Print logs onto terminal/console | Boolean | | LOG_PATH | Location where log files are stored | String | `your-path/Flowise/packages/server` | -| LOG_LEVEL | Different levels of logs | Enum String: `error`, `info`, `verbose`, `debug` | `info` | +| LOG_LEVEL | Different log levels for loggers to be saved | Enum String: `error`, `info`, `verbose`, `debug` | `info` | | DATABASE_PATH | Location where database is saved | String | `your-home-dir/.flowise` | | APIKEY_PATH | Location where api keys are saved | String | `your-path/Flowise/packages/server` | | EXECUTION_MODE | Whether predictions run in their own process or the main process | Enum String: `child`, `main` | `main` |