From 6eac4e45c07b2d5399243a861ad45581b2518095 Mon Sep 17 00:00:00 2001 From: Shweelan Samson Date: Mon, 24 Jun 2019 14:32:57 -0400 Subject: [PATCH] Add logging to genieacs-fs --- lib/fs.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/fs.ts b/lib/fs.ts index b30f3a0..be98836 100644 --- a/lib/fs.ts +++ b/lib/fs.ts @@ -21,21 +21,27 @@ import * as url from "url"; import * as querystring from "querystring"; import { GridFSBucket } from "mongodb"; import * as db from "./db"; +import * as logger from "./logger"; export function listener(request, response): void { const urlParts = url.parse(request.url, true); if (request.method === "GET") { const filename = querystring.unescape(urlParts.pathname.substring(1)); + + const log = { + message: "Fetch file", + filename: filename, + remoteAddress: request.connection.remoteAddress + }; + db.filesCollection.findOne({ _id: filename }, (err, file) => { - if (err) { - response.writeHead(500, { Connection: "close" }); - response.end(`${err.name}: ${err.message}`); - throw err; - } + if (err) throw err; if (!file) { response.writeHead(404); response.end(); + log.message += " not found"; + logger.accessError(log); return; } @@ -47,6 +53,8 @@ export function listener(request, response): void { const bucket = new GridFSBucket(db.client.db()); const downloadStream = bucket.openDownloadStreamByName(filename); downloadStream.pipe(response); + + logger.accessInfo(log); }); } else { response.writeHead(405, { Allow: "GET" });