项目作者: maidol

项目描述 :
a simple and fast JSON logging module for node.js services, and suport logstash
高级语言: JavaScript
项目地址: git://github.com/maidol/cw-logger.git
创建时间: 2017-11-08T10:09:01Z
项目社区:https://github.com/maidol/cw-logger

开源协议:MIT License

下载


git repository

cw logger sample

  1. cd sample
  2. node test.js

How to use

Install

To install via npm

  1. npm install cw-logger --save

Using

  1. const config = {
  2. logRoot: require('path').resolve(__dirname, './logs'), // 日志根目录(需根据实际情况设置)
  3. logLevel: 'info', // file
  4. logLevel4console: 'error', // console
  5. bunyan: {
  6. // 级别分别是: TRACE DEBUG INFO WARN ERROR FATAL
  7. categorys: [{
  8. name: 'console',
  9. type: 'console',
  10. logLevel4console: 'error',
  11. pretty: true, // 格式化console输出日志, 方便查看
  12. src: true // 开启代码行定位
  13. },{
  14. name: 'app', // 模块/分类
  15. type: 'rotatingFile',
  16. pretty: true, // 格式化console输出日志, 方便查看
  17. src: false,
  18. // logLevel: 'info',
  19. // logLevel4console: 'error',
  20. rotateConfig: {
  21. period: '1d', // The period at which to rotate.
  22. threshold: '10m', // Rotate log files larger than 10 megabytes
  23. totalFiles: 10 //The maximum number of rotated files to keep. 0 to keep files regardless of how many there are.
  24. }
  25. },{
  26. name: 'login', // 模块/分类
  27. type: 'rotatingFile',
  28. pretty: true, // 格式化console输出日志, 方便查看
  29. // logLevel: 'info',
  30. // logLevel4console: 'error',
  31. rotateConfig: {
  32. period: '1d', // The period at which to rotate.
  33. threshold: '10m', // Rotate log files larger than 10 megabytes
  34. totalFiles: 0 //The maximum number of rotated files to keep. 0 to keep files regardless of how many there are.
  35. }
  36. }
  37. ]
  38. }
  39. };
  40. const log = require('cw-logger')(config);
  41. const myConsoleLogger = log.console;
  42. const loginLogger = log.login;
  43. const appLogger = log.app;
  44. myConsoleLogger.info('info');
  45. loginLogger.info('info');
  46. appLogger.info('info');
  47. myConsoleLogger.error(new Error('error myConsoleLogger'));
  48. loginLogger.error(new Error('error loginLogger'));
  49. appLogger.error(new Error('error appLogger'));

elk logstash suport

在测试环境配置logstash, 启用logstash收集日志 enableLogstash4console: true; 查看日志的地址elk

  1. const name = 'cw-api-gateway'; // 根据实际情况可定义为项目名称
  2. const config = {
  3. logRoot: require('path').resolve(__dirname, './logs'), // 日志根目录(需根据实际情况设置)
  4. logLevel: 'info', // file
  5. logLevel4console: 'error', // console
  6. bunyan: {
  7. // 级别分别是: TRACE DEBUG INFO WARN ERROR FATAL
  8. categorys: [{
  9. name: 'console',
  10. type: 'console',
  11. logLevel4console: 'error',
  12. pretty: true, // 格式化console输出日志, 方便查看
  13. src: true
  14. },{
  15. name: 'app', // 模块/分类
  16. type: 'rotatingFile',
  17. pretty: true, // 格式化console输出日志, 方便查看
  18. src: false,
  19. // logLevel: 'info',
  20. // logLevel4console: 'error',
  21. rotateConfig: {
  22. period: '1d', // The period at which to rotate.
  23. threshold: '10m', // Rotate log files larger than 10 megabytes
  24. totalFiles: 10 //The maximum number of rotated files to keep. 0 to keep files regardless of how many there are.
  25. }
  26. },{
  27. name: 'login', // 模块/分类
  28. type: 'rotatingFile',
  29. pretty: true, // 格式化console输出日志, 方便查看
  30. // logLevel: 'info',
  31. // logLevel4console: 'error',
  32. rotateConfig: {
  33. period: '1d', // The period at which to rotate.
  34. threshold: '10m', // Rotate log files larger than 10 megabytes
  35. totalFiles: 0 //The maximum number of rotated files to keep. 0 to keep files regardless of how many there are.
  36. }
  37. }
  38. ]
  39. },
  40. enableLogstash4console: true, // 使用elk收集日志
  41. currentLogstashInput: 'tcp', // tcp数据包(相比udp, 大小默认无限制)
  42. logstash: {
  43. type: name + (process.env.SITE_DOMAIN ? `-${process.env.SITE_DOMAIN}` : ''),
  44. udp: {
  45. host: '192.168.2.155',
  46. port: 64100,
  47. type: name + (process.env.SITE_DOMAIN ? `-${process.env.SITE_DOMAIN}` : '')
  48. },
  49. tcp: {
  50. host: '192.168.2.155',
  51. port: 64756,
  52. type: name + (process.env.SITE_DOMAIN ? `-${process.env.SITE_DOMAIN}` : '')
  53. }
  54. },
  55. }

stdout suport pretty format

  1. // 不保证性能, 建议只在开发环境开启pretty, 在生产环境关闭(或者设置logLevel4console为error以上)
  2. // 设置pretty
  3. {
  4. pretty: true // 格式化console输出日志, 方便查看
  5. }

License

MIT.