diff --git a/packages/api/src/common/logger.js b/packages/api/src/common/logger.js index e44ce0e22c..d91660a013 100644 --- a/packages/api/src/common/logger.js +++ b/packages/api/src/common/logger.js @@ -1,11 +1,21 @@ -import winston from 'winston'; +import winston, { format } from 'winston'; import DailyRotateFile from 'winston-daily-rotate-file'; import Transport from 'winston-transport'; import * as Sentry from '@sentry/node'; +const { errors, json, combine } = format; + +// Add the error message as an enumerable property to return with res.json({ error }) +const enumerateErrorMessage = format((info) => { + if (info instanceof Error) { + info.error = { message: info.message }; + } + return info; +}); + const logger = winston.createLogger({ level: 'info', - format: winston.format.json(), + format: combine(enumerateErrorMessage(), json()), defaultMeta: { service: 'user-service' }, transports: [ // @@ -25,7 +35,7 @@ const logger = winston.createLogger({ if (process.env.NODE_ENV !== 'production') { logger.add( new winston.transports.Console({ - format: winston.format.simple(), + format: combine(errors(), json()), }), ); } diff --git a/packages/api/src/controllers/cropVarietyController.js b/packages/api/src/controllers/cropVarietyController.js index fd95307cfc..ae546eabd1 100644 --- a/packages/api/src/controllers/cropVarietyController.js +++ b/packages/api/src/controllers/cropVarietyController.js @@ -20,6 +20,7 @@ const cropVarietyController = { const result = await CropVarietyModel.query().whereNotDeleted().where({ farm_id }); return res.status(200).send(result); } catch (error) { + console.error(error); return res.status(400).json({ error }); } }; @@ -33,6 +34,7 @@ const cropVarietyController = { ? res.status(200).send(result) : res.status(404).send('Crop variety not found'); } catch (error) { + console.error(error); return res.status(400).json({ error }); } }; diff --git a/packages/api/src/controllers/documentController.js b/packages/api/src/controllers/documentController.js index c35e95eae8..e75d09c8ff 100644 --- a/packages/api/src/controllers/documentController.js +++ b/packages/api/src/controllers/documentController.js @@ -72,6 +72,7 @@ const documentController = { .patch({ archived: req.body.archived }); return result ? res.sendStatus(200) : res.status(404).send('Document not found'); } catch (error) { + console.error(error); return res.status(400).json({ error }); } }; diff --git a/packages/api/src/controllers/insightController.js b/packages/api/src/controllers/insightController.js index 0c9572698f..0646d65d0e 100644 --- a/packages/api/src/controllers/insightController.js +++ b/packages/api/src/controllers/insightController.js @@ -159,6 +159,7 @@ const insightController = { res.status(200).send({}); } } catch (error) { + console.error(error); res.status(400).json({ error }); } }; diff --git a/packages/api/src/controllers/managementPlanController.js b/packages/api/src/controllers/managementPlanController.js index 24b965d842..1bece709fe 100644 --- a/packages/api/src/controllers/managementPlanController.js +++ b/packages/api/src/controllers/managementPlanController.js @@ -802,6 +802,7 @@ const managementPlanController = { ? res.status(200).send(removeCropVarietyFromManagementPlans(managementPlans)) : res.status(404).send('Field crop not found'); } catch (error) { + console.error(error); res.status(400).json({ error }); } }; diff --git a/packages/api/src/controllers/organicHistoryController.js b/packages/api/src/controllers/organicHistoryController.js index 8632b3b72c..088fdae239 100644 --- a/packages/api/src/controllers/organicHistoryController.js +++ b/packages/api/src/controllers/organicHistoryController.js @@ -22,6 +22,7 @@ export default { const result = await OrganicHistoryModel.query().context(req.auth).insert(req.body); return res.status(201).send(result); } catch (error) { + console.error(error); return res.status(400).json({ error }); } }; @@ -36,6 +37,7 @@ export default { ? res.status(200).send(result) : res.status(404).send('Organic history not found'); } catch (error) { + console.error(error); return res.status(400).json({ error }); } }, diff --git a/packages/api/src/controllers/taskController.js b/packages/api/src/controllers/taskController.js index cfef8ff1ac..8a19d08ccd 100644 --- a/packages/api/src/controllers/taskController.js +++ b/packages/api/src/controllers/taskController.js @@ -185,6 +185,7 @@ const taskController = { } return res.status(404).send('Tasks not found'); } catch (error) { + console.error(error); return res.status(400).json({ error }); } }, @@ -813,6 +814,7 @@ const taskController = { return res.status(200).send(result); } catch (error) { + console.error(error); return res.status(400).json({ error }); } },