separate utilities for logs

This commit is contained in:
Ondřej Synáček 2020-07-17 21:34:52 +02:00
parent 8bd5b99e50
commit 410096398d
4 changed files with 40 additions and 34 deletions

View File

@ -13,7 +13,7 @@ const {
createRouteLogger,
createErrorLogger,
} = require('./middlewares')
const { createAppLogger } = require('./utils')
const { createAppLogger } = require('./log-utils')
const port = process.env.PORT
const certEndpoint = process.env.CERT_ENDPOINT || ''

37
lib/log-utils.js Normal file
View File

@ -0,0 +1,37 @@
const path = require('path')
const winston = require('winston')
require('winston-daily-rotate-file')
const createDailyRotateLogFileTransport = () => {
const transport = new (winston.transports.DailyRotateFile)({
filename: path.join(__dirname, '..', 'logs', 'app-%DATE%.log'),
datePattern: 'YYYY-MM-DD',
zippedArchive: false,
maxSize: '20m',
maxFiles: '14d',
})
return transport
}
const createTransports = (dev) => {
return [
dev && new winston.transports.Console(),
createDailyRotateLogFileTransport(),
].filter(transport => transport)
}
const createAppLogger = ({ dev }) => {
return winston.createLogger({
transports: createTransports(dev),
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
})
}
module.exports = {
createTransports,
createAppLogger,
}

View File

@ -1,7 +1,8 @@
const winston = require('winston')
const expressWinston = require('express-winston')
const path = require('path')
const { checkValidURL, createTransports } = require('./utils')
const { checkValidURL } = require('./utils')
const { createTransports } = require('./log-utils')
const MissingURLParameter = () => new Error('Please provide valid URL or event number.')
const sendJSON = (req) => {

View File

@ -1,6 +1,4 @@
const dayjs = require('dayjs')
const winston = require('winston')
require('winston-daily-rotate-file')
const path = require('path')
const checkValidURL = (url) => {
@ -55,34 +53,6 @@ const getNormalizedUrl = (URLparameter) => {
return mobileUrl
}
const createDailyRotateLogFileTransport = () => {
const transport = new (winston.transports.DailyRotateFile)({
filename: path.join(__dirname, '..', 'logs', 'app-%DATE%.log'),
datePattern: 'YYYY-MM-DD',
zippedArchive: false,
maxSize: '20m',
maxFiles: '14d',
})
return transport
}
const createTransports = (dev) => {
return [
dev && new winston.transports.Console(),
createDailyRotateLogFileTransport(),
].filter(transport => transport)
}
const createAppLogger = ({ dev }) => {
return winston.createLogger({
transports: createTransports(dev),
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
})
}
module.exports = {
checkValidURL,
@ -92,6 +62,4 @@ module.exports = {
createMobileURL,
createURL,
getNormalizedUrl,
createAppLogger,
createTransports,
}