如何将记录器附加到nodemailer SMTPTransport类的记录器

时间:2018-04-02 10:08:31

标签: node.js nodemailer

需要将自定义winston记录器添加到SMTPTransport传输类,但在连接记录器后根本不执行任何错误记录功能。

以下是nodejs nodemailer util

中SMTPTransport类的摘录
class SMTPTransport extends EventEmitter {
...
    this.logger = shared.getLogger(this.options, {
            component: this.options.component || 'smtp-transport'
    });
...
send(mail, callback) {
....
               connection.send(envelope, mail.message.createReadStream(), (err, info) => {
                ...
                try {
                    return callback(null, info);
                } catch (E) {
                    this.logger.error(
                        {
                            err: E,
                            tnx: 'callback'
                        },
                        'Callback error for %s: %s',
                        messageId,
                        E.message
                    );
                }
            });

尝试覆盖,如下例所示,不会启动任何错误记录。

在以下示例中,此记录器记录上面显示的send函数内的所有异常以外的所有内容:

    winston.loggers.add('logger', {
        transports: [
            new (winston.transports.Console)({
                level: logLevel,
                colorize: true,
                handleExceptions: true,
                humanReadableUnhandledException: true,
                showLevel: true,
                timestamp: showCliLogPrefix,
                stderrLevels: []
            }),
            options
        ]
    });
    var nodeMailer = require(<path to nodeMailer>)
    nodeMailer .logger = logger

那么如何将此winston记录器附加到nodeMailer记录器?

0 个答案:

没有答案