logging.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. var config = require("../config");
  2. var exp = {};
  3. // returns all values in the +args+ object separated by " "
  4. function join_args(args) {
  5. var values = [];
  6. for (var i = 0, l = args.length; i < l; i++) {
  7. values.push(args[i]);
  8. }
  9. return values.join(" ");
  10. }
  11. // prints +args+ to +logger+ (defaults to `console.log`)
  12. // the +level+ and a timestamp is prepended to each line of log
  13. // the timestamp can be disabled in the config
  14. function log(level, args, logger) {
  15. logger = logger || console.log;
  16. var time = config.server.log_time ? new Date().toISOString() + " " : "";
  17. var lines = join_args(args).split("\n");
  18. for (var i = 0, l = lines.length; i < l; i++) {
  19. logger(time, level + ":", lines[i]);
  20. }
  21. }
  22. exp.log = function() {
  23. log(" INFO", arguments);
  24. };
  25. exp.warn = function() {
  26. log(" WARN", arguments, console.warn);
  27. };
  28. exp.error = function() {
  29. log("ERROR", arguments, console.error);
  30. };
  31. if (config.server.debug_enabled) {
  32. exp.debug = function() {
  33. log("DEBUG", arguments);
  34. };
  35. } else {
  36. exp.debug = function() {};
  37. }
  38. module.exports = exp;