Merge pull request #430 from shocknet/bug/winston-errors
Winston logging refactored
This commit is contained in:
commit
879547c101
17 changed files with 63 additions and 66 deletions
|
|
@ -1,58 +1,58 @@
|
|||
// config/log.js
|
||||
/** @prettier */
|
||||
|
||||
const winston = require("winston");
|
||||
const util = require("util")
|
||||
require("winston-daily-rotate-file");
|
||||
const { createLogger, transports, format } = require('winston')
|
||||
const util = require('util')
|
||||
require('winston-daily-rotate-file')
|
||||
|
||||
const winstonAttached = new Map();
|
||||
|
||||
const transform = (info) => {
|
||||
const args = info[Symbol.for('splat')];
|
||||
// @ts-ignore
|
||||
const transform = info => {
|
||||
const args = info[Symbol.for('splat')]
|
||||
if (args) {
|
||||
return {...info, message: util.format(info.message, ...args)};
|
||||
return { ...info, message: util.format(info.message, ...args) }
|
||||
}
|
||||
return info;
|
||||
return info
|
||||
}
|
||||
|
||||
const logFormatter = () => ({ transform })
|
||||
|
||||
/**
|
||||
* @param {string} logFileName
|
||||
* @param {string} logLevel
|
||||
* @returns {import("winston").Logger}
|
||||
*/
|
||||
module.exports = (logFileName, logLevel) => {
|
||||
if (!winstonAttached.has(logFileName)) {
|
||||
winston.add(new (winston.transports.DailyRotateFile)({
|
||||
filename: logFileName,
|
||||
datePattern: "yyyy-MM-DD",
|
||||
const formatter = format.combine(
|
||||
format.colorize(),
|
||||
format.errors({ stack: true }),
|
||||
logFormatter(),
|
||||
format.prettyPrint(),
|
||||
format.timestamp(),
|
||||
format.simple(),
|
||||
format.align(),
|
||||
format.printf(info => {
|
||||
const { timestamp, level, message, stack, exception } = info
|
||||
|
||||
const ts = timestamp.slice(0, 19).replace('T', ' ')
|
||||
const isObject = typeof message === 'object'
|
||||
const formattedJson = isObject ? JSON.stringify(message, null, 2) : message
|
||||
const formattedException = exception ? exception.stack : ''
|
||||
const errorMessage = stack || formattedException
|
||||
const formattedMessage = errorMessage ? errorMessage : formattedJson
|
||||
|
||||
return `${ts} [${level}]: ${formattedMessage}`
|
||||
})
|
||||
)
|
||||
|
||||
const Logger = createLogger({
|
||||
format: formatter,
|
||||
transports: [
|
||||
new transports.DailyRotateFile({
|
||||
filename: 'shockapi.log',
|
||||
datePattern: 'yyyy-MM-DD',
|
||||
// https://github.com/winstonjs/winston-daily-rotate-file/issues/188
|
||||
json: true,
|
||||
json: false,
|
||||
maxSize: 1000000,
|
||||
maxFiles: 7,
|
||||
level: logLevel
|
||||
}))
|
||||
winston.add(new winston.transports.Console({
|
||||
format: winston.format.combine(
|
||||
winston.format.colorize(),
|
||||
logFormatter(),
|
||||
winston.format.prettyPrint(),
|
||||
winston.format.timestamp(),
|
||||
winston.format.simple(),
|
||||
winston.format.align(),
|
||||
winston.format.printf((info) => {
|
||||
const {
|
||||
timestamp, level, message
|
||||
} = info;
|
||||
|
||||
const ts = timestamp.slice(0, 19).replace('T', ' ');
|
||||
return `${ts} [${level}]: ${typeof message === "object" ? JSON.stringify(message, null, 2) : message}`;
|
||||
handleExceptions: true
|
||||
}),
|
||||
)
|
||||
}))
|
||||
winston.level = logLevel
|
||||
winstonAttached.set(logFileName, winston)
|
||||
}
|
||||
new transports.Console({
|
||||
handleExceptions: true
|
||||
})
|
||||
]
|
||||
})
|
||||
|
||||
return winstonAttached.get(logFileName)
|
||||
}
|
||||
module.exports = Logger
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ const jwt = require('jsonwebtoken')
|
|||
const uuidv1 = require('uuid/v1')
|
||||
const jsonfile = require('jsonfile')
|
||||
const path = require('path')
|
||||
const logger = require('winston')
|
||||
const logger = require('../../config/log')
|
||||
const Storage = require('node-persist')
|
||||
const FS = require('../../utils/fs')
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ const Common = require('shock-common')
|
|||
const Gun = require('gun')
|
||||
// @ts-ignore
|
||||
require('gun/nts')
|
||||
const logger = require('winston')
|
||||
const logger = require('../../../config/log')
|
||||
// @ts-ignore
|
||||
Gun.log = () => {}
|
||||
// @ts-ignore
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
const uuidv1 = require('uuid/v1')
|
||||
const logger = require('winston')
|
||||
const logger = require('../../../config/log')
|
||||
const Common = require('shock-common')
|
||||
const { Constants, Schema } = Common
|
||||
const Gun = require('gun')
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
const Common = require('shock-common')
|
||||
const Logger = require('winston')
|
||||
const Logger = require('../../../../config/log')
|
||||
const size = require('lodash/size')
|
||||
|
||||
const Utils = require('../utils')
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
|
||||
const logger = require('winston')
|
||||
const logger = require('../../../../config/log')
|
||||
|
||||
const {
|
||||
Constants: {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
// @ts-check
|
||||
const logger = require('winston')
|
||||
const logger = require('../../../../config/log')
|
||||
const isFinite = require('lodash/isFinite')
|
||||
const isNumber = require('lodash/isNumber')
|
||||
const isNaN = require('lodash/isNaN')
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
/* eslint-disable init-declarations */
|
||||
const logger = require('winston')
|
||||
const logger = require('../../../../config/log')
|
||||
const { Constants, Utils: CommonUtils } = require('shock-common')
|
||||
|
||||
const Key = require('../key')
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
|
||||
const logger = require('winston')
|
||||
const logger = require('../../../config/log')
|
||||
const Common = require('shock-common')
|
||||
const uuidv4 = require('uuid/v4')
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
const Crypto = require('crypto')
|
||||
const logger = require('winston')
|
||||
const logger = require('../../config/log')
|
||||
const Common = require('shock-common')
|
||||
const getGunUser = () => require('../gunDB/Mediator').getUser()
|
||||
const isAuthenticated = () => require('../gunDB/Mediator').isAuthenticated()
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
const Axios = require('axios')
|
||||
const Crypto = require('crypto')
|
||||
const Storage = require('node-persist')
|
||||
const logger = require('winston')
|
||||
const logger = require('../../config/log')
|
||||
const httpsAgent = require('https')
|
||||
const responseTime = require('response-time')
|
||||
const uuid = require('uuid/v4')
|
||||
|
|
|
|||
|
|
@ -47,10 +47,7 @@ const server = program => {
|
|||
const tunnelHost = process.env.LOCAL_TUNNEL_SERVER || defaults.localtunnelHost
|
||||
|
||||
// setup winston logging ==========
|
||||
const logger = require('../config/log')(
|
||||
program.logfile || defaults.logfile,
|
||||
program.loglevel || defaults.loglevel
|
||||
)
|
||||
const logger = require('../config/log')
|
||||
|
||||
CommonLogger.setLogger(logger)
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
*/
|
||||
// @ts-check
|
||||
|
||||
const logger = require('winston')
|
||||
const logger = require('../config/log')
|
||||
const Common = require('shock-common')
|
||||
const mapValues = require('lodash/mapValues')
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
const Common = require('shock-common')
|
||||
const logger = require('winston')
|
||||
const logger = require('../../config/log')
|
||||
const { safeParseJSON } = require('../JSON')
|
||||
const ECC = require('./index')
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
*/
|
||||
const Crypto = require('crypto')
|
||||
const { Buffer } = require('buffer')
|
||||
const logger = require('winston')
|
||||
const logger = require('../config/log')
|
||||
|
||||
const APIKeyPair = new Map()
|
||||
const authorizedDevices = new Map()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
const logger = require('winston')
|
||||
const logger = require('../../config/log')
|
||||
const fetch = require('node-fetch')
|
||||
const Storage = require('node-persist')
|
||||
const { listPeers, connectPeer,getInfo } = require('./v2')
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* @format
|
||||
*/
|
||||
const Crypto = require('crypto')
|
||||
const logger = require('winston')
|
||||
const logger = require('../../config/log')
|
||||
const Common = require('shock-common')
|
||||
const Ramda = require('ramda')
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue