log4js.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. /* automatically generated by JSCoverage - do not edit */
  2. if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
  3. if (! _$jscoverage['log4js.js']) {
  4. _$jscoverage['log4js.js'] = [];
  5. _$jscoverage['log4js.js'][1] = 0;
  6. _$jscoverage['log4js.js'][46] = 0;
  7. _$jscoverage['log4js.js'][71] = 0;
  8. _$jscoverage['log4js.js'][74] = 0;
  9. _$jscoverage['log4js.js'][75] = 0;
  10. _$jscoverage['log4js.js'][78] = 0;
  11. _$jscoverage['log4js.js'][79] = 0;
  12. _$jscoverage['log4js.js'][81] = 0;
  13. _$jscoverage['log4js.js'][82] = 0;
  14. _$jscoverage['log4js.js'][83] = 0;
  15. _$jscoverage['log4js.js'][84] = 0;
  16. _$jscoverage['log4js.js'][85] = 0;
  17. _$jscoverage['log4js.js'][88] = 0;
  18. _$jscoverage['log4js.js'][89] = 0;
  19. _$jscoverage['log4js.js'][90] = 0;
  20. _$jscoverage['log4js.js'][91] = 0;
  21. _$jscoverage['log4js.js'][96] = 0;
  22. _$jscoverage['log4js.js'][102] = 0;
  23. _$jscoverage['log4js.js'][103] = 0;
  24. _$jscoverage['log4js.js'][104] = 0;
  25. _$jscoverage['log4js.js'][105] = 0;
  26. _$jscoverage['log4js.js'][106] = 0;
  27. _$jscoverage['log4js.js'][109] = 0;
  28. _$jscoverage['log4js.js'][110] = 0;
  29. _$jscoverage['log4js.js'][113] = 0;
  30. _$jscoverage['log4js.js'][114] = 0;
  31. _$jscoverage['log4js.js'][116] = 0;
  32. _$jscoverage['log4js.js'][117] = 0;
  33. _$jscoverage['log4js.js'][118] = 0;
  34. _$jscoverage['log4js.js'][119] = 0;
  35. _$jscoverage['log4js.js'][124] = 0;
  36. _$jscoverage['log4js.js'][125] = 0;
  37. _$jscoverage['log4js.js'][126] = 0;
  38. _$jscoverage['log4js.js'][127] = 0;
  39. _$jscoverage['log4js.js'][132] = 0;
  40. _$jscoverage['log4js.js'][133] = 0;
  41. _$jscoverage['log4js.js'][134] = 0;
  42. _$jscoverage['log4js.js'][136] = 0;
  43. _$jscoverage['log4js.js'][139] = 0;
  44. _$jscoverage['log4js.js'][140] = 0;
  45. _$jscoverage['log4js.js'][141] = 0;
  46. _$jscoverage['log4js.js'][142] = 0;
  47. _$jscoverage['log4js.js'][143] = 0;
  48. _$jscoverage['log4js.js'][148] = 0;
  49. _$jscoverage['log4js.js'][149] = 0;
  50. _$jscoverage['log4js.js'][150] = 0;
  51. _$jscoverage['log4js.js'][151] = 0;
  52. _$jscoverage['log4js.js'][152] = 0;
  53. _$jscoverage['log4js.js'][153] = 0;
  54. _$jscoverage['log4js.js'][154] = 0;
  55. _$jscoverage['log4js.js'][155] = 0;
  56. _$jscoverage['log4js.js'][156] = 0;
  57. _$jscoverage['log4js.js'][157] = 0;
  58. _$jscoverage['log4js.js'][159] = 0;
  59. _$jscoverage['log4js.js'][165] = 0;
  60. _$jscoverage['log4js.js'][166] = 0;
  61. _$jscoverage['log4js.js'][167] = 0;
  62. _$jscoverage['log4js.js'][168] = 0;
  63. _$jscoverage['log4js.js'][169] = 0;
  64. _$jscoverage['log4js.js'][175] = 0;
  65. _$jscoverage['log4js.js'][176] = 0;
  66. _$jscoverage['log4js.js'][184] = 0;
  67. _$jscoverage['log4js.js'][185] = 0;
  68. _$jscoverage['log4js.js'][188] = 0;
  69. _$jscoverage['log4js.js'][190] = 0;
  70. _$jscoverage['log4js.js'][191] = 0;
  71. _$jscoverage['log4js.js'][192] = 0;
  72. _$jscoverage['log4js.js'][194] = 0;
  73. _$jscoverage['log4js.js'][197] = 0;
  74. _$jscoverage['log4js.js'][198] = 0;
  75. _$jscoverage['log4js.js'][199] = 0;
  76. _$jscoverage['log4js.js'][200] = 0;
  77. _$jscoverage['log4js.js'][201] = 0;
  78. _$jscoverage['log4js.js'][203] = 0;
  79. _$jscoverage['log4js.js'][204] = 0;
  80. _$jscoverage['log4js.js'][206] = 0;
  81. _$jscoverage['log4js.js'][209] = 0;
  82. _$jscoverage['log4js.js'][217] = 0;
  83. _$jscoverage['log4js.js'][218] = 0;
  84. _$jscoverage['log4js.js'][219] = 0;
  85. _$jscoverage['log4js.js'][221] = 0;
  86. _$jscoverage['log4js.js'][222] = 0;
  87. _$jscoverage['log4js.js'][224] = 0;
  88. _$jscoverage['log4js.js'][227] = 0;
  89. _$jscoverage['log4js.js'][228] = 0;
  90. _$jscoverage['log4js.js'][229] = 0;
  91. _$jscoverage['log4js.js'][230] = 0;
  92. _$jscoverage['log4js.js'][232] = 0;
  93. _$jscoverage['log4js.js'][234] = 0;
  94. _$jscoverage['log4js.js'][237] = 0;
  95. _$jscoverage['log4js.js'][238] = 0;
  96. _$jscoverage['log4js.js'][239] = 0;
  97. _$jscoverage['log4js.js'][240] = 0;
  98. _$jscoverage['log4js.js'][242] = 0;
  99. _$jscoverage['log4js.js'][243] = 0;
  100. _$jscoverage['log4js.js'][244] = 0;
  101. _$jscoverage['log4js.js'][247] = 0;
  102. _$jscoverage['log4js.js'][248] = 0;
  103. _$jscoverage['log4js.js'][249] = 0;
  104. _$jscoverage['log4js.js'][250] = 0;
  105. _$jscoverage['log4js.js'][252] = 0;
  106. _$jscoverage['log4js.js'][253] = 0;
  107. _$jscoverage['log4js.js'][254] = 0;
  108. _$jscoverage['log4js.js'][256] = 0;
  109. _$jscoverage['log4js.js'][258] = 0;
  110. _$jscoverage['log4js.js'][259] = 0;
  111. _$jscoverage['log4js.js'][264] = 0;
  112. _$jscoverage['log4js.js'][267] = 0;
  113. _$jscoverage['log4js.js'][275] = 0;
  114. _$jscoverage['log4js.js'][276] = 0;
  115. _$jscoverage['log4js.js'][277] = 0;
  116. _$jscoverage['log4js.js'][278] = 0;
  117. _$jscoverage['log4js.js'][281] = 0;
  118. _$jscoverage['log4js.js'][282] = 0;
  119. _$jscoverage['log4js.js'][283] = 0;
  120. _$jscoverage['log4js.js'][287] = 0;
  121. _$jscoverage['log4js.js'][288] = 0;
  122. _$jscoverage['log4js.js'][289] = 0;
  123. _$jscoverage['log4js.js'][293] = 0;
  124. _$jscoverage['log4js.js'][294] = 0;
  125. _$jscoverage['log4js.js'][295] = 0;
  126. _$jscoverage['log4js.js'][296] = 0;
  127. _$jscoverage['log4js.js'][298] = 0;
  128. _$jscoverage['log4js.js'][300] = 0;
  129. _$jscoverage['log4js.js'][301] = 0;
  130. _$jscoverage['log4js.js'][304] = 0;
  131. _$jscoverage['log4js.js'][326] = 0;
  132. }
  133. _$jscoverage['log4js.js'][1]++;
  134. "use strict";
  135. _$jscoverage['log4js.js'][46]++;
  136. var events = require("events"), fs = require("fs"), path = require("path"), util = require("util"), layouts = require("./layouts"), levels = require("./levels"), LoggingEvent = require("./logger").LoggingEvent, Logger = require("./logger").Logger, ALL_CATEGORIES = "[all]", appenders = {}, loggers = {}, appenderMakers = {}, defaultConfig = {appenders: [{type: "console"}], replaceConsole: false};
  137. _$jscoverage['log4js.js'][71]++;
  138. function getLogger(categoryName) {
  139. _$jscoverage['log4js.js'][74]++;
  140. if (typeof categoryName !== "string") {
  141. _$jscoverage['log4js.js'][75]++;
  142. categoryName = Logger.DEFAULT_CATEGORY;
  143. }
  144. _$jscoverage['log4js.js'][78]++;
  145. var appenderList;
  146. _$jscoverage['log4js.js'][79]++;
  147. if (! loggers[categoryName]) {
  148. _$jscoverage['log4js.js'][81]++;
  149. loggers[categoryName] = new Logger(categoryName);
  150. _$jscoverage['log4js.js'][82]++;
  151. if (appenders[categoryName]) {
  152. _$jscoverage['log4js.js'][83]++;
  153. appenderList = appenders[categoryName];
  154. _$jscoverage['log4js.js'][84]++;
  155. appenderList.forEach((function (appender) {
  156. _$jscoverage['log4js.js'][85]++;
  157. loggers[categoryName].addListener("log", appender);
  158. }));
  159. }
  160. _$jscoverage['log4js.js'][88]++;
  161. if (appenders[ALL_CATEGORIES]) {
  162. _$jscoverage['log4js.js'][89]++;
  163. appenderList = appenders[ALL_CATEGORIES];
  164. _$jscoverage['log4js.js'][90]++;
  165. appenderList.forEach((function (appender) {
  166. _$jscoverage['log4js.js'][91]++;
  167. loggers[categoryName].addListener("log", appender);
  168. }));
  169. }
  170. }
  171. _$jscoverage['log4js.js'][96]++;
  172. return loggers[categoryName];
  173. }
  174. _$jscoverage['log4js.js'][102]++;
  175. function addAppender() {
  176. _$jscoverage['log4js.js'][103]++;
  177. var args = Array.prototype.slice.call(arguments);
  178. _$jscoverage['log4js.js'][104]++;
  179. var appender = args.shift();
  180. _$jscoverage['log4js.js'][105]++;
  181. if (args.length === 0 || args[0] === undefined) {
  182. _$jscoverage['log4js.js'][106]++;
  183. args = [ALL_CATEGORIES];
  184. }
  185. _$jscoverage['log4js.js'][109]++;
  186. if (Array.isArray(args[0])) {
  187. _$jscoverage['log4js.js'][110]++;
  188. args = args[0];
  189. }
  190. _$jscoverage['log4js.js'][113]++;
  191. args.forEach((function (category) {
  192. _$jscoverage['log4js.js'][114]++;
  193. addAppenderToCategory(appender, category);
  194. _$jscoverage['log4js.js'][116]++;
  195. if (category === ALL_CATEGORIES) {
  196. _$jscoverage['log4js.js'][117]++;
  197. addAppenderToAllLoggers(appender);
  198. }
  199. else {
  200. _$jscoverage['log4js.js'][118]++;
  201. if (loggers[category]) {
  202. _$jscoverage['log4js.js'][119]++;
  203. loggers[category].addListener("log", appender);
  204. }
  205. }
  206. }));
  207. }
  208. _$jscoverage['log4js.js'][124]++;
  209. function addAppenderToAllLoggers(appender) {
  210. _$jscoverage['log4js.js'][125]++;
  211. for (var logger in loggers) {
  212. _$jscoverage['log4js.js'][126]++;
  213. if (loggers.hasOwnProperty(logger)) {
  214. _$jscoverage['log4js.js'][127]++;
  215. loggers[logger].addListener("log", appender);
  216. }
  217. }
  218. }
  219. _$jscoverage['log4js.js'][132]++;
  220. function addAppenderToCategory(appender, category) {
  221. _$jscoverage['log4js.js'][133]++;
  222. if (! appenders[category]) {
  223. _$jscoverage['log4js.js'][134]++;
  224. appenders[category] = [];
  225. }
  226. _$jscoverage['log4js.js'][136]++;
  227. appenders[category].push(appender);
  228. }
  229. _$jscoverage['log4js.js'][139]++;
  230. function clearAppenders() {
  231. _$jscoverage['log4js.js'][140]++;
  232. appenders = {};
  233. _$jscoverage['log4js.js'][141]++;
  234. for (var logger in loggers) {
  235. _$jscoverage['log4js.js'][142]++;
  236. if (loggers.hasOwnProperty(logger)) {
  237. _$jscoverage['log4js.js'][143]++;
  238. loggers[logger].removeAllListeners("log");
  239. }
  240. }
  241. }
  242. _$jscoverage['log4js.js'][148]++;
  243. function configureAppenders(appenderList, options) {
  244. _$jscoverage['log4js.js'][149]++;
  245. clearAppenders();
  246. _$jscoverage['log4js.js'][150]++;
  247. if (appenderList) {
  248. _$jscoverage['log4js.js'][151]++;
  249. appenderList.forEach((function (appenderConfig) {
  250. _$jscoverage['log4js.js'][152]++;
  251. loadAppender(appenderConfig.type);
  252. _$jscoverage['log4js.js'][153]++;
  253. var appender;
  254. _$jscoverage['log4js.js'][154]++;
  255. appenderConfig.makers = appenderMakers;
  256. _$jscoverage['log4js.js'][155]++;
  257. try {
  258. _$jscoverage['log4js.js'][156]++;
  259. appender = appenderMakers[appenderConfig.type](appenderConfig, options);
  260. _$jscoverage['log4js.js'][157]++;
  261. addAppender(appender, appenderConfig.category);
  262. }
  263. catch (e) {
  264. _$jscoverage['log4js.js'][159]++;
  265. throw new Error("log4js configuration problem for " + util.inspect(appenderConfig), e);
  266. }
  267. }));
  268. }
  269. }
  270. _$jscoverage['log4js.js'][165]++;
  271. function configureLevels(levels) {
  272. _$jscoverage['log4js.js'][166]++;
  273. if (levels) {
  274. _$jscoverage['log4js.js'][167]++;
  275. for (var category in levels) {
  276. _$jscoverage['log4js.js'][168]++;
  277. if (levels.hasOwnProperty(category)) {
  278. _$jscoverage['log4js.js'][169]++;
  279. getLogger(category).setLevel(levels[category]);
  280. }
  281. }
  282. }
  283. }
  284. _$jscoverage['log4js.js'][175]++;
  285. function setGlobalLogLevel(level) {
  286. _$jscoverage['log4js.js'][176]++;
  287. Logger.prototype.level = levels.toLevel(level, levels.TRACE);
  288. }
  289. _$jscoverage['log4js.js'][184]++;
  290. function getDefaultLogger() {
  291. _$jscoverage['log4js.js'][185]++;
  292. return getLogger(Logger.DEFAULT_CATEGORY);
  293. }
  294. _$jscoverage['log4js.js'][188]++;
  295. var configState = {};
  296. _$jscoverage['log4js.js'][190]++;
  297. function loadConfigurationFile(filename) {
  298. _$jscoverage['log4js.js'][191]++;
  299. if (filename) {
  300. _$jscoverage['log4js.js'][192]++;
  301. return JSON.parse(fs.readFileSync(filename, "utf8"));
  302. }
  303. _$jscoverage['log4js.js'][194]++;
  304. return undefined;
  305. }
  306. _$jscoverage['log4js.js'][197]++;
  307. function configureOnceOff(config, options) {
  308. _$jscoverage['log4js.js'][198]++;
  309. if (config) {
  310. _$jscoverage['log4js.js'][199]++;
  311. try {
  312. _$jscoverage['log4js.js'][200]++;
  313. configureAppenders(config.appenders, options);
  314. _$jscoverage['log4js.js'][201]++;
  315. configureLevels(config.levels);
  316. _$jscoverage['log4js.js'][203]++;
  317. if (config.replaceConsole) {
  318. _$jscoverage['log4js.js'][204]++;
  319. replaceConsole();
  320. }
  321. else {
  322. _$jscoverage['log4js.js'][206]++;
  323. restoreConsole();
  324. }
  325. }
  326. catch (e) {
  327. _$jscoverage['log4js.js'][209]++;
  328. throw new Error("Problem reading log4js config " + util.inspect(config) + ". Error was \"" + e.message + "\" (" + e.stack + ")");
  329. }
  330. }
  331. }
  332. _$jscoverage['log4js.js'][217]++;
  333. function reloadConfiguration() {
  334. _$jscoverage['log4js.js'][218]++;
  335. var mtime = getMTime(configState.filename);
  336. _$jscoverage['log4js.js'][219]++;
  337. if (! mtime) {
  338. _$jscoverage['log4js.js'][219]++;
  339. return;
  340. }
  341. _$jscoverage['log4js.js'][221]++;
  342. if (configState.lastMTime && (mtime.getTime() > configState.lastMTime.getTime())) {
  343. _$jscoverage['log4js.js'][222]++;
  344. configureOnceOff(loadConfigurationFile(configState.filename));
  345. }
  346. _$jscoverage['log4js.js'][224]++;
  347. configState.lastMTime = mtime;
  348. }
  349. _$jscoverage['log4js.js'][227]++;
  350. function getMTime(filename) {
  351. _$jscoverage['log4js.js'][228]++;
  352. var mtime;
  353. _$jscoverage['log4js.js'][229]++;
  354. try {
  355. _$jscoverage['log4js.js'][230]++;
  356. mtime = fs.statSync(configState.filename).mtime;
  357. }
  358. catch (e) {
  359. _$jscoverage['log4js.js'][232]++;
  360. getLogger("log4js").warn("Failed to load configuration file " + filename);
  361. }
  362. _$jscoverage['log4js.js'][234]++;
  363. return mtime;
  364. }
  365. _$jscoverage['log4js.js'][237]++;
  366. function initReloadConfiguration(filename, options) {
  367. _$jscoverage['log4js.js'][238]++;
  368. if (configState.timerId) {
  369. _$jscoverage['log4js.js'][239]++;
  370. clearInterval(configState.timerId);
  371. _$jscoverage['log4js.js'][240]++;
  372. delete configState.timerId;
  373. }
  374. _$jscoverage['log4js.js'][242]++;
  375. configState.filename = filename;
  376. _$jscoverage['log4js.js'][243]++;
  377. configState.lastMTime = getMTime(filename);
  378. _$jscoverage['log4js.js'][244]++;
  379. configState.timerId = setInterval(reloadConfiguration, options.reloadSecs * 1000);
  380. }
  381. _$jscoverage['log4js.js'][247]++;
  382. function configure(configurationFileOrObject, options) {
  383. _$jscoverage['log4js.js'][248]++;
  384. var config = configurationFileOrObject;
  385. _$jscoverage['log4js.js'][249]++;
  386. config = config || process.env.LOG4JS_CONFIG;
  387. _$jscoverage['log4js.js'][250]++;
  388. options = options || {};
  389. _$jscoverage['log4js.js'][252]++;
  390. if (config === undefined || config === null || typeof config === "string") {
  391. _$jscoverage['log4js.js'][253]++;
  392. if (options.reloadSecs) {
  393. _$jscoverage['log4js.js'][254]++;
  394. initReloadConfiguration(config, options);
  395. }
  396. _$jscoverage['log4js.js'][256]++;
  397. config = loadConfigurationFile(config) || defaultConfig;
  398. }
  399. else {
  400. _$jscoverage['log4js.js'][258]++;
  401. if (options.reloadSecs) {
  402. _$jscoverage['log4js.js'][259]++;
  403. getLogger("log4js").warn("Ignoring configuration reload parameter for \"object\" configuration.");
  404. }
  405. }
  406. _$jscoverage['log4js.js'][264]++;
  407. configureOnceOff(config, options);
  408. }
  409. _$jscoverage['log4js.js'][267]++;
  410. var originalConsoleFunctions = {log: console.log, debug: console.debug, info: console.info, warn: console.warn, error: console.error};
  411. _$jscoverage['log4js.js'][275]++;
  412. function replaceConsole(logger) {
  413. _$jscoverage['log4js.js'][276]++;
  414. function replaceWith(fn) {
  415. _$jscoverage['log4js.js'][277]++;
  416. return (function () {
  417. _$jscoverage['log4js.js'][278]++;
  418. fn.apply(logger, arguments);
  419. });
  420. }
  421. _$jscoverage['log4js.js'][281]++;
  422. logger = logger || getLogger("console");
  423. _$jscoverage['log4js.js'][282]++;
  424. ["log", "debug", "info", "warn", "error"].forEach((function (item) {
  425. _$jscoverage['log4js.js'][283]++;
  426. console[item] = replaceWith(item === "log"? logger.info: logger[item]);
  427. }));
  428. }
  429. _$jscoverage['log4js.js'][287]++;
  430. function restoreConsole() {
  431. _$jscoverage['log4js.js'][288]++;
  432. ["log", "debug", "info", "warn", "error"].forEach((function (item) {
  433. _$jscoverage['log4js.js'][289]++;
  434. console[item] = originalConsoleFunctions[item];
  435. }));
  436. }
  437. _$jscoverage['log4js.js'][293]++;
  438. function loadAppender(appender) {
  439. _$jscoverage['log4js.js'][294]++;
  440. var appenderModule;
  441. _$jscoverage['log4js.js'][295]++;
  442. try {
  443. _$jscoverage['log4js.js'][296]++;
  444. appenderModule = require("./appenders/" + appender);
  445. }
  446. catch (e) {
  447. _$jscoverage['log4js.js'][298]++;
  448. appenderModule = require(appender);
  449. }
  450. _$jscoverage['log4js.js'][300]++;
  451. module.exports.appenders[appender] = appenderModule.appender.bind(appenderModule);
  452. _$jscoverage['log4js.js'][301]++;
  453. appenderMakers[appender] = appenderModule.configure.bind(appenderModule);
  454. }
  455. _$jscoverage['log4js.js'][304]++;
  456. module.exports = {getLogger: getLogger, getDefaultLogger: getDefaultLogger, addAppender: addAppender, loadAppender: loadAppender, clearAppenders: clearAppenders, configure: configure, replaceConsole: replaceConsole, restoreConsole: restoreConsole, levels: levels, setGlobalLogLevel: setGlobalLogLevel, layouts: layouts, appenders: {}, appenderMakers: appenderMakers, connectLogger: require("./connect-logger").connectLogger};
  457. _$jscoverage['log4js.js'][326]++;
  458. configure();
  459. _$jscoverage['log4js.js'].source = ["\"use strict\";","/*"," * Licensed under the Apache License, Version 2.0 (the \"License\");"," * you may not use this file except in compliance with the License."," * You may obtain a copy of the License at"," *"," * http://www.apache.org/licenses/LICENSE-2.0"," *"," * Unless required by applicable law or agreed to in writing, software"," * distributed under the License is distributed on an \"AS IS\" BASIS,"," * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."," * See the License for the specific language governing permissions and"," * limitations under the License."," */","","/**"," * @fileoverview log4js is a library to log in JavaScript in similar manner"," * than in log4j for Java. The API should be nearly the same."," *"," * <h3>Example:</h3>"," * <pre>"," * var logging = require('log4js');"," * //add an appender that logs all messages to stdout."," * logging.addAppender(logging.consoleAppender());"," * //add an appender that logs \"some-category\" to a file"," * logging.addAppender(logging.fileAppender(\"file.log\"), \"some-category\");"," * //get a logger"," * var log = logging.getLogger(\"some-category\");"," * log.setLevel(logging.levels.TRACE); //set the Level"," *"," * ..."," *"," * //call the log"," * log.trace(\"trace me\" );"," * </pre>"," *"," * NOTE: the authors below are the original browser-based log4js authors"," * don't try to contact them about bugs in this version :)"," * @version 1.0"," * @author Stephan Strittmatter - http://jroller.com/page/stritti"," * @author Seth Chisamore - http://www.chisamore.com"," * @since 2005-05-20"," * @static"," * Website: http://log4js.berlios.de"," */","var events = require('events')",", fs = require('fs')",", path = require('path')",", util = require('util')",", layouts = require('./layouts')",", levels = require('./levels')",", LoggingEvent = require('./logger').LoggingEvent",", Logger = require('./logger').Logger",", ALL_CATEGORIES = '[all]'",", appenders = {}",", loggers = {}",", appenderMakers = {}",", defaultConfig = {"," appenders: ["," { type: \"console\" }"," ],"," replaceConsole: false","};","","/**"," * Get a logger instance. Instance is cached on categoryName level."," * @param {String} categoryName name of category to log to."," * @return {Logger} instance of logger for the category"," * @static"," */","function getLogger (categoryName) {",""," // Use default logger if categoryName is not specified or invalid"," if (typeof categoryName !== \"string\") {"," categoryName = Logger.DEFAULT_CATEGORY;"," }",""," var appenderList;"," if (!loggers[categoryName]) {"," // Create the logger for this name if it doesn't already exist"," loggers[categoryName] = new Logger(categoryName);"," if (appenders[categoryName]) {"," appenderList = appenders[categoryName];"," appenderList.forEach(function(appender) {"," loggers[categoryName].addListener(\"log\", appender);"," });"," }"," if (appenders[ALL_CATEGORIES]) {"," appenderList = appenders[ALL_CATEGORIES];"," appenderList.forEach(function(appender) {"," loggers[categoryName].addListener(\"log\", appender);"," });"," }"," }"," "," return loggers[categoryName];","}","","/**"," * args are appender, then zero or more categories"," */","function addAppender () {"," var args = Array.prototype.slice.call(arguments);"," var appender = args.shift();"," if (args.length === 0 || args[0] === undefined) {"," args = [ ALL_CATEGORIES ];"," }"," //argument may already be an array"," if (Array.isArray(args[0])) {"," args = args[0];"," }"," "," args.forEach(function(category) {"," addAppenderToCategory(appender, category);"," "," if (category === ALL_CATEGORIES) {"," addAppenderToAllLoggers(appender);"," } else if (loggers[category]) {"," loggers[category].addListener(\"log\", appender);"," }"," });","}","","function addAppenderToAllLoggers(appender) {"," for (var logger in loggers) {"," if (loggers.hasOwnProperty(logger)) {"," loggers[logger].addListener(\"log\", appender);"," }"," }","}","","function addAppenderToCategory(appender, category) {"," if (!appenders[category]) {"," appenders[category] = [];"," }"," appenders[category].push(appender);","}","","function clearAppenders () {"," appenders = {};"," for (var logger in loggers) {"," if (loggers.hasOwnProperty(logger)) {"," loggers[logger].removeAllListeners(\"log\");"," }"," }","}","","function configureAppenders(appenderList, options) {"," clearAppenders();"," if (appenderList) {"," appenderList.forEach(function(appenderConfig) {"," loadAppender(appenderConfig.type);"," var appender;"," appenderConfig.makers = appenderMakers;"," try {"," appender = appenderMakers[appenderConfig.type](appenderConfig, options);"," addAppender(appender, appenderConfig.category);"," } catch(e) {"," throw new Error(\"log4js configuration problem for \" + util.inspect(appenderConfig), e);"," }"," });"," }","}","","function configureLevels(levels) {"," if (levels) {"," for (var category in levels) {"," if (levels.hasOwnProperty(category)) {"," getLogger(category).setLevel(levels[category]);"," }"," }"," }","}","","function setGlobalLogLevel(level) {"," Logger.prototype.level = levels.toLevel(level, levels.TRACE);","}","","/**"," * Get the default logger instance."," * @return {Logger} instance of default logger"," * @static"," */","function getDefaultLogger () {"," return getLogger(Logger.DEFAULT_CATEGORY);","}","","var configState = {};","","function loadConfigurationFile(filename) {"," if (filename) {"," return JSON.parse(fs.readFileSync(filename, \"utf8\"));"," }"," return undefined;","}","","function configureOnceOff(config, options) {"," if (config) {"," try {"," configureAppenders(config.appenders, options);"," configureLevels(config.levels);"," "," if (config.replaceConsole) {"," replaceConsole();"," } else {"," restoreConsole();"," }"," } catch (e) {"," throw new Error("," \"Problem reading log4js config \" + util.inspect(config) + "," \". Error was \\\"\" + e.message + \"\\\" (\" + e.stack + \")\""," );"," }"," }","}","","function reloadConfiguration() {"," var mtime = getMTime(configState.filename);"," if (!mtime) return;",""," if (configState.lastMTime && (mtime.getTime() > configState.lastMTime.getTime())) {"," configureOnceOff(loadConfigurationFile(configState.filename));"," }"," configState.lastMTime = mtime;","}","","function getMTime(filename) {"," var mtime;"," try {"," mtime = fs.statSync(configState.filename).mtime;"," } catch (e) {"," getLogger('log4js').warn('Failed to load configuration file ' + filename);"," }"," return mtime;","}","","function initReloadConfiguration(filename, options) {"," if (configState.timerId) {"," clearInterval(configState.timerId);"," delete configState.timerId;"," }"," configState.filename = filename;"," configState.lastMTime = getMTime(filename);"," configState.timerId = setInterval(reloadConfiguration, options.reloadSecs*1000);","}","","function configure(configurationFileOrObject, options) {"," var config = configurationFileOrObject;"," config = config || process.env.LOG4JS_CONFIG;"," options = options || {};"," "," if (config === undefined || config === null || typeof(config) === 'string') {"," if (options.reloadSecs) {"," initReloadConfiguration(config, options);"," }"," config = loadConfigurationFile(config) || defaultConfig;"," } else {"," if (options.reloadSecs) {"," getLogger('log4js').warn("," 'Ignoring configuration reload parameter for \"object\" configuration.'"," );"," }"," }"," configureOnceOff(config, options);","}","","var originalConsoleFunctions = {"," log: console.log,"," debug: console.debug,"," info: console.info,"," warn: console.warn,"," error: console.error","};","","function replaceConsole(logger) {"," function replaceWith(fn) {"," return function() {"," fn.apply(logger, arguments);"," };"," }"," logger = logger || getLogger(\"console\");"," ['log','debug','info','warn','error'].forEach(function (item) {"," console[item] = replaceWith(item === 'log' ? logger.info : logger[item]);"," });","}","","function restoreConsole() {"," ['log', 'debug', 'info', 'warn', 'error'].forEach(function (item) {"," console[item] = originalConsoleFunctions[item];"," });","}","","function loadAppender(appender) {"," var appenderModule;"," try {"," appenderModule = require('./appenders/' + appender);"," } catch (e) {"," appenderModule = require(appender);"," }"," module.exports.appenders[appender] = appenderModule.appender.bind(appenderModule);"," appenderMakers[appender] = appenderModule.configure.bind(appenderModule);","}","","module.exports = {"," getLogger: getLogger,"," getDefaultLogger: getDefaultLogger,"," "," addAppender: addAppender,"," loadAppender: loadAppender,"," clearAppenders: clearAppenders,"," configure: configure,"," "," replaceConsole: replaceConsole,"," restoreConsole: restoreConsole,"," "," levels: levels,"," setGlobalLogLevel: setGlobalLogLevel,"," "," layouts: layouts,"," appenders: {},"," appenderMakers: appenderMakers,"," connectLogger: require('./connect-logger').connectLogger","};","","//set ourselves up","configure();",""];