smtp.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /* automatically generated by JSCoverage - do not edit */
  2. if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
  3. if (! _$jscoverage['appenders/smtp.js']) {
  4. _$jscoverage['appenders/smtp.js'] = [];
  5. _$jscoverage['appenders/smtp.js'][1] = 0;
  6. _$jscoverage['appenders/smtp.js'][2] = 0;
  7. _$jscoverage['appenders/smtp.js'][16] = 0;
  8. _$jscoverage['appenders/smtp.js'][17] = 0;
  9. _$jscoverage['appenders/smtp.js'][18] = 0;
  10. _$jscoverage['appenders/smtp.js'][19] = 0;
  11. _$jscoverage['appenders/smtp.js'][21] = 0;
  12. _$jscoverage['appenders/smtp.js'][22] = 0;
  13. _$jscoverage['appenders/smtp.js'][24] = 0;
  14. _$jscoverage['appenders/smtp.js'][25] = 0;
  15. _$jscoverage['appenders/smtp.js'][27] = 0;
  16. _$jscoverage['appenders/smtp.js'][28] = 0;
  17. _$jscoverage['appenders/smtp.js'][29] = 0;
  18. _$jscoverage['appenders/smtp.js'][30] = 0;
  19. _$jscoverage['appenders/smtp.js'][31] = 0;
  20. _$jscoverage['appenders/smtp.js'][34] = 0;
  21. _$jscoverage['appenders/smtp.js'][40] = 0;
  22. _$jscoverage['appenders/smtp.js'][41] = 0;
  23. _$jscoverage['appenders/smtp.js'][43] = 0;
  24. _$jscoverage['appenders/smtp.js'][44] = 0;
  25. _$jscoverage['appenders/smtp.js'][45] = 0;
  26. _$jscoverage['appenders/smtp.js'][47] = 0;
  27. _$jscoverage['appenders/smtp.js'][52] = 0;
  28. _$jscoverage['appenders/smtp.js'][53] = 0;
  29. _$jscoverage['appenders/smtp.js'][54] = 0;
  30. _$jscoverage['appenders/smtp.js'][55] = 0;
  31. _$jscoverage['appenders/smtp.js'][56] = 0;
  32. _$jscoverage['appenders/smtp.js'][61] = 0;
  33. _$jscoverage['appenders/smtp.js'][62] = 0;
  34. _$jscoverage['appenders/smtp.js'][63] = 0;
  35. _$jscoverage['appenders/smtp.js'][64] = 0;
  36. _$jscoverage['appenders/smtp.js'][66] = 0;
  37. _$jscoverage['appenders/smtp.js'][71] = 0;
  38. _$jscoverage['appenders/smtp.js'][72] = 0;
  39. _$jscoverage['appenders/smtp.js'][73] = 0;
  40. _$jscoverage['appenders/smtp.js'][74] = 0;
  41. _$jscoverage['appenders/smtp.js'][76] = 0;
  42. _$jscoverage['appenders/smtp.js'][79] = 0;
  43. _$jscoverage['appenders/smtp.js'][80] = 0;
  44. _$jscoverage['appenders/smtp.js'][81] = 0;
  45. }
  46. _$jscoverage['appenders/smtp.js'][1]++;
  47. "use strict";
  48. _$jscoverage['appenders/smtp.js'][2]++;
  49. var layouts = require("../layouts"), mailer = require("nodemailer"), os = require("os");
  50. _$jscoverage['appenders/smtp.js'][16]++;
  51. function smtpAppender(config, layout) {
  52. _$jscoverage['appenders/smtp.js'][17]++;
  53. layout = layout || layouts.basicLayout;
  54. _$jscoverage['appenders/smtp.js'][18]++;
  55. var subjectLayout = layouts.messagePassThroughLayout;
  56. _$jscoverage['appenders/smtp.js'][19]++;
  57. var sendInterval = config.sendInterval * 1000 || 0;
  58. _$jscoverage['appenders/smtp.js'][21]++;
  59. var logEventBuffer = [];
  60. _$jscoverage['appenders/smtp.js'][22]++;
  61. var sendTimer;
  62. _$jscoverage['appenders/smtp.js'][24]++;
  63. function sendBuffer() {
  64. _$jscoverage['appenders/smtp.js'][25]++;
  65. if (logEventBuffer.length > 0) {
  66. _$jscoverage['appenders/smtp.js'][27]++;
  67. var transport = mailer.createTransport(config.transport, config[config.transport]);
  68. _$jscoverage['appenders/smtp.js'][28]++;
  69. var firstEvent = logEventBuffer[0];
  70. _$jscoverage['appenders/smtp.js'][29]++;
  71. var body = "";
  72. _$jscoverage['appenders/smtp.js'][30]++;
  73. while (logEventBuffer.length > 0) {
  74. _$jscoverage['appenders/smtp.js'][31]++;
  75. body += layout(logEventBuffer.shift()) + "\n";
  76. }
  77. _$jscoverage['appenders/smtp.js'][34]++;
  78. var msg = {to: config.recipients, subject: config.subject || subjectLayout(firstEvent), text: body, headers: {"Hostname": os.hostname()}};
  79. _$jscoverage['appenders/smtp.js'][40]++;
  80. if (config.sender) {
  81. _$jscoverage['appenders/smtp.js'][41]++;
  82. msg.from = config.sender;
  83. }
  84. _$jscoverage['appenders/smtp.js'][43]++;
  85. transport.sendMail(msg, (function (error, success) {
  86. _$jscoverage['appenders/smtp.js'][44]++;
  87. if (error) {
  88. _$jscoverage['appenders/smtp.js'][45]++;
  89. console.error("log4js.smtpAppender - Error happened", error);
  90. }
  91. _$jscoverage['appenders/smtp.js'][47]++;
  92. transport.close();
  93. }));
  94. }
  95. }
  96. _$jscoverage['appenders/smtp.js'][52]++;
  97. function scheduleSend() {
  98. _$jscoverage['appenders/smtp.js'][53]++;
  99. if (! sendTimer) {
  100. _$jscoverage['appenders/smtp.js'][54]++;
  101. sendTimer = setTimeout((function () {
  102. _$jscoverage['appenders/smtp.js'][55]++;
  103. sendTimer = null;
  104. _$jscoverage['appenders/smtp.js'][56]++;
  105. sendBuffer();
  106. }), sendInterval);
  107. }
  108. }
  109. _$jscoverage['appenders/smtp.js'][61]++;
  110. return (function (loggingEvent) {
  111. _$jscoverage['appenders/smtp.js'][62]++;
  112. logEventBuffer.push(loggingEvent);
  113. _$jscoverage['appenders/smtp.js'][63]++;
  114. if (sendInterval > 0) {
  115. _$jscoverage['appenders/smtp.js'][64]++;
  116. scheduleSend();
  117. }
  118. else {
  119. _$jscoverage['appenders/smtp.js'][66]++;
  120. sendBuffer();
  121. }
  122. });
  123. }
  124. _$jscoverage['appenders/smtp.js'][71]++;
  125. function configure(config) {
  126. _$jscoverage['appenders/smtp.js'][72]++;
  127. var layout;
  128. _$jscoverage['appenders/smtp.js'][73]++;
  129. if (config.layout) {
  130. _$jscoverage['appenders/smtp.js'][74]++;
  131. layout = layouts.layout(config.layout.type, config.layout);
  132. }
  133. _$jscoverage['appenders/smtp.js'][76]++;
  134. return smtpAppender(config, layout);
  135. }
  136. _$jscoverage['appenders/smtp.js'][79]++;
  137. exports.name = "smtp";
  138. _$jscoverage['appenders/smtp.js'][80]++;
  139. exports.appender = smtpAppender;
  140. _$jscoverage['appenders/smtp.js'][81]++;
  141. exports.configure = configure;
  142. _$jscoverage['appenders/smtp.js'].source = ["\"use strict\";","var layouts = require(\"../layouts\")",", mailer = require(\"nodemailer\")",", os = require('os');","","/**","* SMTP Appender. Sends logging events using SMTP protocol. ","* It can either send an email on each event or group several ","* logging events gathered during specified interval.","*","* @param config appender configuration data","* config.sendInterval time between log emails (in seconds), if 0","* then every event sends an email","* @param layout a function that takes a logevent and returns a string (defaults to basicLayout).","*/","function smtpAppender(config, layout) {","\tlayout = layout || layouts.basicLayout;","\tvar subjectLayout = layouts.messagePassThroughLayout;","\tvar sendInterval = config.sendInterval*1000 || 0;","\t","\tvar logEventBuffer = [];","\tvar sendTimer;","\t","\tfunction sendBuffer() {"," if (logEventBuffer.length > 0) {","\t\t"," var transport = mailer.createTransport(config.transport, config[config.transport]);"," var firstEvent = logEventBuffer[0];"," var body = \"\";"," while (logEventBuffer.length > 0) {"," body += layout(logEventBuffer.shift()) + \"\\n\";"," }",""," var msg = {"," to: config.recipients,"," subject: config.subject || subjectLayout(firstEvent),"," text: body,"," headers: { \"Hostname\": os.hostname() }"," };"," if (config.sender) {"," msg.from = config.sender;"," }"," transport.sendMail(msg, function(error, success) {"," if (error) {"," console.error(\"log4js.smtpAppender - Error happened\", error);"," }"," transport.close();"," });"," }","\t}","\t","\tfunction scheduleSend() {","\t\tif (!sendTimer) {","\t\t\tsendTimer = setTimeout(function() {","\t\t\t\tsendTimer = null; ","\t\t\t\tsendBuffer();","\t\t\t}, sendInterval);"," }","\t}","\t","\treturn function(loggingEvent) {","\t\tlogEventBuffer.push(loggingEvent);","\t\tif (sendInterval > 0) {","\t\t\tscheduleSend();","\t\t} else {","\t\t\tsendBuffer();"," }","\t};","}","","function configure(config) {","\tvar layout;","\tif (config.layout) {","\t\tlayout = layouts.layout(config.layout.type, config.layout);","\t}","\treturn smtpAppender(config, layout);","}","","exports.name = \"smtp\";","exports.appender = smtpAppender;","exports.configure = configure;",""];