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