如何在log4js smtp appender中使用非SMTP传输?

如果你阅读了SMTP appender的log4js 文档 ,你会看到SMTP传输的例子,它甚至不能和最新的nodemailer(我在写作时使用nodemailer 1.3.0)很好地工作。

文档显示这个不好的configuration为例:

{ "appenders": [ { "type": "smtp", "recipients": "foo@bar.com", "sendInterval": 60, "transport": "SMTP", "SMTP": { "host": "smtp.gmail.com", "secureConnection": true, "port": 465, "auth": { "user": "foo@bar.com", "pass": "bar_foo" } } } ] } 

如何更改configuration使用SMTP以外的传输? 我想要的是configurationlog4js使用SendGrid。

经过几个小时的反复试验,我find了解决办法。 这里是console和smtp appenders的例子log4jsconfiguration:

 sendgridTransport = require('nodemailer-sendgrid-transport'); log4js.configure({ appenders: [{ type: 'console' }, { type: 'logLevelFilter', level: 'ERROR', appender: { type: 'smtp', recipients: 'admin@example.com', sender: 'system@example.com', sendInterval: 60, transport: sendgridTransport({ auth: { api_user: config.smtpUsername, api_key: config.smtpPassword } }) } }] }); 

您可以用类似的方式使用任何其他运输工具。 支持者传输是所有由nodemailer支持的传输(例如:AWS SES,SMTP,…)。 请参阅您要使用的传输文档以了解如何实例化它。