log_helper.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * Created by chen on 2017/9/4.
  3. */
  4. let helper = {};
  5. module.exports.logger = helper;
  6. let log4js = require('log4js');
  7. let fs = require("fs");
  8. let path = require("path");
  9. // 加载配置文件
  10. let objConfig = JSON.parse(fs.readFileSync(__dirname+"/log4js.json", "utf8"));
  11. // 加载基础配置
  12. if(objConfig.appenders){
  13. let baseDir = objConfig["customBaseDir"];
  14. let defaultAtt = objConfig["customDefaultAtt"];
  15. for(let key in objConfig.appenders){
  16. var item = objConfig.appenders[key];
  17. if(item["type"] == "console")
  18. continue;
  19. if(defaultAtt != null){
  20. for(let att in defaultAtt){
  21. if(item[att] == null)
  22. item[att] = defaultAtt[att];
  23. }
  24. }
  25. if(baseDir != null){
  26. if(item["filename"] == null)
  27. item["filename"] = baseDir;
  28. else
  29. item["filename"] = baseDir + item["filename"];
  30. }
  31. }
  32. }
  33. log4js.configure(objConfig);
  34. let logDebug = log4js.getLogger('logDebug');
  35. let logInfo = log4js.getLogger('logInfo');
  36. let logWarn = log4js.getLogger('logWarn');
  37. let logErr = log4js.getLogger('logErr');
  38. console.log = logInfo.info.bind(logInfo);//把控制台信息输出到文件中
  39. helper.debug = function(msg){
  40. if(msg == null)
  41. msg = "";
  42. logDebug.debug(msg);
  43. };
  44. helper.info = function(msg){
  45. if(msg == null)
  46. msg = "";
  47. logInfo.info(msg);
  48. };
  49. helper.warn = function(msg){
  50. if(msg == null)
  51. msg = "";
  52. logWarn.warn(msg);
  53. };
  54. helper.err = function(msg, exp){
  55. if(msg == null)
  56. msg = "";
  57. if(exp != null)
  58. msg += "\r\n" + exp;
  59. logErr.error(msg);
  60. };
  61. // 配合express用的方法
  62. module.exports.use = function(app) {
  63. //页面请求日志, level用auto时,默认级别是WARN
  64. app.use(log4js.connectLogger(logDebug, {level:'debug', format:':method :url'}));
  65. }