logging.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. // log with INFO level
  23. exp.log = function() {
  24. log(" INFO", arguments);
  25. };
  26. // log with WARN level
  27. exp.warn = function() {
  28. log(" WARN", arguments, console.warn);
  29. };
  30. // log with ERROR level
  31. exp.error = function() {
  32. log("ERROR", arguments, console.error);
  33. };
  34. // log with DEBUG level if debug logging is enabled
  35. if (config.server.debug_enabled) {
  36. exp.debug = function() {
  37. log("DEBUG", arguments);
  38. };
  39. } else {
  40. exp.debug = function() {};
  41. }
  42. module.exports = exp;