Sequelize的日志记录

image.png
看着好像不能保存,

log4js-node-日志记录

文档:https://log4js-node.github.io/log4js-node/index.html

日志等级划分

log等级.jpg

简单使用

  1. const log4js = require('log4js');
  2. const path = require('path');
  3. log4js.configure({
  4. // 输出
  5. appenders: {
  6. sql: {
  7. type: 'dateFile', // 日志类型
  8. filename: path.resolve(__dirname, 'logs', 'sql', 'logging.log'), // 文件路径
  9. keepFileExt: true, // 保持文件后缀
  10. daysToKeep: 2, // 保留几天的日志
  11. compress: true, // 压缩
  12. maxLogSize: 1024 * 1024, // 最大储存量 达到最大存储量会将其移入备份文件夹
  13. layout: {
  14. type: 'pattern',
  15. pattern: '%c [%d{yyyy-MM-dd hh:mm:ss}] [%p]: %m%n', // 日志格式
  16. },
  17. },
  18. default: {
  19. type: 'stdout',
  20. },
  21. },
  22. // 类型
  23. categories: {
  24. sql: {
  25. appenders: ['sql'],
  26. level: 'all', //日志等级 只会显示该等级以上的日志信息,包含该等级
  27. },
  28. default: { appenders: ['default'], level: 'debug' },
  29. },
  30. });
  31. process.on('exit', ()=> {
  32. log4js.shutdown();
  33. })
  34. const sqlLogger = log4js.getLogger('sql');
  35. const defaultLogger = log4js.getLogger('default');
  36. exports.sqlLogger = sqlLogger;
  37. exports.logger = defaultLogger;

配合Sequelize的记录日志

  1. const { Sequelize } = require('sequelize');
  2. const { sqlLogger } = require('../logger');
  3. // 方法 2: 分别传递参数 (其它数据库)
  4. const sequelize = new Sequelize('myschooldb', 'root', '123456', {
  5. host: 'localhost',
  6. dialect: 'mysql' /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */,
  7. // 日志记录
  8. logging: (msg) => {
  9. sqlLogger.debug(msg)
  10. }
  11. });
  12. module.exports = sequelize

效果图
开启啦vscode的多行展示
image.png
image.png
压缩包是测试产生的,由于设置啦最大储存量,达到最大量后将其移入备份中,由于我开启啦压缩就是图上的那样

日志类型

image.png

日志信息的格式

image.png