8000 Format source code · chewax/log4js-node@5db457b · GitHub
[go: up one dir, main page]

Skip to content

Commit 5db457b

Browse files
author
Guillaume Chauvet
committed
Format source code
1 parent a4331b9 commit 5db457b

File tree

1 file changed

+97
-95
lines changed

1 file changed

+97
-95
lines changed

lib/appenders/smtp.js

Lines changed: 97 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,122 @@
11
"use strict";
22
var layouts = require("../layouts")
3-
, mailer = require("nodemailer")
4-
, os = require('os')
5-
, async = require('async')
6-
, unsentCount = 0
7-
, shutdownTimeout;
3+
, mailer = require("nodemailer")
4+
, os = require('os')
5+
, async = require('async')
6+
, unsentCount = 0
7+
, shutdownTimeout;
88

99
/**
10-
* SMTP Appender. Sends logging events using SMTP protocol.
11-
* It can either send an email on each event or group several
12-
* logging events gathered during specified interval.
13-
*
14-
* @param config appender configuration data
15-
* config.sendInterval time between log emails (in seconds), if 0
16-
* then every event sends an email
17-
* config.shutdownTimeout time to give up remaining emails (in seconds; defaults to 5).
18-
* @param layout a function that takes a logevent and returns a string (defaults to basicLayout).
19-
*/
10+
* SMTP Appender. Sends logging events using SMTP protocol.
11+
* It can either send an email on each event or group several
12+
* logging events gathered during specified interval.
13+
*
14+
* @param config appender configuration data
15+
* config.sendInterval time between log emails (in seconds), if 0
16+
* then every event sends an email
17+
* config.shutdownTimeout time to give up remaining emails (in seconds; defaults to 5).
18+
* @param layout a function that takes a logevent and returns a string (defaults to basicLayout).
19+
*/
2020
function smtpAppender(config, layout) {
21-
layout = layout || layouts.basicLayout;
22-
var subjectLayout = layouts.messagePassThroughLayout;
23-
var sendInterval = config.sendInterval*1000 || 0;
24-
25-
var logEventBuffer = [];
26-
var sendTimer;
27-
28-
shutdownTimeout = ('shutdownTimeout' in config ? config.shutdownTimeout : 5) * 1000;
29-
30-
function sendBuffer() {
31-
if (logEventBuffer.length > 0) {
32-
33-
var transportOpts = getTransportOptions(config);
34-
var transport = mailer.createTransport(transportOpts);
35-
var firstEvent = logEventBuffer[0];
36-
var body = "";
37-
var count = logEventBuffer.length;
38-
while (logEventBuffer.length > 0) {
39-
body += layout(logEventBuffer.shift(), config.timezoneOffset) + "\n";
40-
}
41-
42-
var msg = {
43-
to: config.recipients,
44-
subject: config.subject || subjectLayout(firstEvent),
45-
headers: { "Hostname": os.hostname() }
46-
};
47-
48-
if (!config.html) {
49-
msg.text = body;
50-
} else {
51-
msg.html = body;
52-
}
53-
54-
if (config.sender) {
55-
msg.from = config.sender;
56-
}
57-
transport.sendMail(msg, function(error, success) {
58-
if (error) {
59-
console.error("log4js.smtpAppender - Error happened", error);
21+
layout = layout || layouts.basicLayout;
22+
var subjectLayout = layouts.messagePassThroughLayout;
23+
var sendInterval = config.sendInterval * 1000 || 0;
24+
25+
var logEventBuffer = [];
26+
var sendTimer;
27+
28+
shutdownTimeout = ('shutdownTimeout' in config ? config.shutdownTimeout : 5) * 1000;
29+
30+
function sendBuffer() {
31+
if (logEventBuffer.length > 0) {
32+
33+
var transportOpts = getTransportOptions(config);
34+
var transport = mailer.createTransport(transportOpts);
35+
var firstEvent = logEventBuffer[0];
36+
var body = "";
37+
var count = logEventBuffer.length;
38+
while (logEventBuffer.length > 0) {
39+
body += layout(logEventBuffer.shift(), config.timezoneOffset) + "\n";
40+
}
41+
42+
var msg = {
43+
to: config.recipients,
44+
subject: config.subject || subjectLayout(firstEvent),
45+
headers: {"Hostname": os.hostname()}
46+
};
47+
48+
if (!config.html) {
49+
msg.text = body;
50+
} else {
51+
msg.html = body;
52+
}
53+
54+
if (config.sender) {
55+
msg.from = config.sender;
56+
}
57+
transport.sendMail(msg, function (error, success) {
58+
if (error) {
59+
console.error("log4js.smtpAppender - Error happened", error);
60+
}
61+
transport.close();
62+
unsentCount -= count;
63+
});
6064
}
61-
transport.close();
62-
unsentCount -= count;
63-
});
6465
}
65-
}
66-
67-
function scheduleSend() {
68-
if (!sendTimer) {
69-
sendTimer = setTimeout(function() {
70-
sendTimer = null;
71-
sendBuffer();
72-
}, sendInterval);
66+
67+
function scheduleSend() {
68+
if (!sendTimer) {
69+
sendTimer = setTimeout(function () {
70+
sendTimer = null;
71+
sendBuffer();
72+
}, sendInterval);
73+
}
7374
}
74-
}
75-
76-
function getTransportOptions(config) {
75+
76+
function getTransportOptions(config) {
7777
var transportOpts = null;
78-
if( config.SMTP ) {
78+
if (config.SMTP) {
7979
transportOpts = config.SMTP;
80-
} else if( config.transport ) {
80+
} else if (config.transport) {
8181
var plugin = config.transport.plugin || 'smtp';
8282
var transportModule = 'nodemailer-' + plugin + '-transport';
83-
var transporter = require( transportModule );
84-
transportOpts = transporter( config.transport.options );
83+
var transporter = require(transportModule);
84+
transportOpts = transporter(config.transport.options);
8585
}
8686

8787
return transportOpts;
88-
}
89-
90-
return function(loggingEvent) {
91-
unsentCount++;
92-
logEventBuffer.push(loggingEvent);
93-
if (sendInterval > 0) {
94-
scheduleSend();
95-
} else {
96-
sendBuffer();
9788
}
98-
};
89+
90+
return function (loggingEvent) {
91+
unsentCount++;
92+
logEventBuffer.push(loggingEvent);
93+
if (sendInterval > 0) {
94+
scheduleSend();
95+
} else {
96+
sendBuffer();
97+
}
98+
};
9999
}
100100

101101
function configure(config) {
102-
var layout;
103-
if (config.layout) {
104-
layout = layouts.layout(config.layout.type, config.layout);
105-
}
106-
return smtpAppender(config, layout);
102+
var layout;
103+
if (config.layout) {
104+
layout = layouts.layout(config.layout.type, config.layout);
105+
}
106+
return smtpAppender(config, layout);
107107
}
108108

109109
function shutdown(cb) {
110-
if (shutdownTimeout > 0) {
111-
setTimeout(function() { unsentCount = 0; }, shutdownTimeout);
112-
}
113-
async.whilst(function() {
114-
return unsentCount > 0;
115-
}, function(done) {
116-
setTimeout(done, 100);
117-
}, cb);
110+
if (shutdownTimeout > 0) {
111+
setTimeout(function () {
112+
unsentCount = 0;
113+
}, shutdownTimeout);
114+
}
115+
async.whilst(function () {
116+
return unsentCount > 0;
117+
}, function (done) {
118+
setTimeout(done, 100);
119+
}, cb);
118120
}
119121

120122
exports.name = "smtp";

0 commit comments

Comments
 (0)
0