Fixing issue #137

This commit is contained in:
Gareth Jones
2013-05-25 13:04:48 +10:00
parent fdc9d253c9
commit 8492519e3b
2 changed files with 56 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
var layouts = require("../layouts"),
mailer = require("nodemailer"),
os = require('os');
mailer = require("nodemailer"),
os = require('os');
/**
* SMTP Appender. Sends logging events using SMTP protocol.
@@ -17,12 +17,13 @@ function smtpAppender(config, layout) {
var logEventBuffer = [];
var sendTimer;
var transport = mailer.createTransport(config.transport, config[config.transport]);
function sendBuffer() {
if (logEventBuffer.length == 0)
if (logEventBuffer.length == 0) {
return;
}
var transport = mailer.createTransport(config.transport, config[config.transport]);
var firstEvent = logEventBuffer[0];
var body = "";
while (logEventBuffer.length > 0) {
@@ -35,29 +36,33 @@ function smtpAppender(config, layout) {
text: body,
headers: {"Hostname": os.hostname()}
};
if (config.sender)
if (config.sender) {
msg.from = config.sender;
}
transport.sendMail(msg, function(error, success) {
if (error) {
console.error("log4js.smtpAppender - Error happened ", error);
}
transport.close();
});
}
function scheduleSend() {
if (!sendTimer)
if (!sendTimer) {
sendTimer = setTimeout(function() {
sendTimer = null;
sendBuffer();
}, sendInterval);
}
}
return function(loggingEvent) {
logEventBuffer.push(loggingEvent);
if (sendInterval > 0)
if (sendInterval > 0) {
scheduleSend();
else
} else {
sendBuffer();
}
};
}