module.exports = {
JsonDBTransport: class JsonDBTransport extends Transport {
constructor(options) {
super(options)
if (options.level === "error") {
this.logDBSystem = new Store({name: options.filename})
if (this.logDBSystem.get('log') === undefined)
this.logDBSystem.set('log', [])
}
else {
this.logDBUser = new Store({name: options.filename})
if (this.logDBUser.get('log') === undefined)
this.logDBUser.set('log', [])
}
}
log(info, callback) {
let self = this
setImmediate(function () {
self.emit('logged', info)
})
let logDB
console.log('test')
if (info.level === "error")
logDB = self.logDBSystem
else
logDB = self.logDBUser
if (logDB !== undefined) {
let log = logDB.get('log')
log.push(info)
logDB.set('log', log)
}
if (callback && typeof callback === "function")
callback()
}
}
}
winston.loggers.add('logger', {
format: combine(timestamp(), prettyPrint()),
transports: [
new module.exports.JsonDBTransport({ filename: userLogsPath + path.sep + logFile, level: 'info' }),
new module.exports.JsonDBTransport({ filename: sysLogsPath + path.sep + logFile, level: 'error' })
],
exitOnError: false
})
logger = winston.loggers.get('logger')
logger.info('test log')
未调用自定义传输中的日志功能,因此未保存日志。我正在使用winston 3.0.0-rc5和electron-store来存储日志文件,以便创建正确的JSON文件。在我开始使用winston.loggers之前,自定义传输工作正常,但我需要能够保存来自多个文件的日志消息。
答案 0 :(得分:0)
问题得到解决。我认为它与Electron相关的代码干扰有关,但我不确定我改变了什么来解决这个问题。以下是Chris Alderson在GitHub上的一些建议(供未来观众使用)。