Функция журнала не вызывается в моем пользовательском транспорте - PullRequest
0 голосов
/ 28 апреля 2018
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, но мне нужно иметь возможность сохранять сообщения журнала из нескольких файлов.

1 Ответ

0 голосов
/ 04 мая 2018

Проблема решена. Я думаю, что это как-то связано с вмешательством кода, связанного с Электроном, но я не уверен, что я изменил, чтобы решить проблему. Вот некоторые предложения (для будущих зрителей) от Криса Олдерсона о GitHub .

...