cool-admin(midway版)后端日志管理:日志聚合与集中式存储终极指南
cool-admin(midway版)后端日志管理日志聚合与集中式存储终极指南【免费下载链接】cool-admin-midway cool-admin(midway版)一个很酷的后台权限管理框架模块化、插件化、CRUD极速开发永久开源免费基于midway.js 3.x、typescript、typeorm、mysql、jwt、vue3、vite、element-ui等构建项目地址: https://gitcode.com/gh_mirrors/co/cool-admin-midwaycool-admin(midway版)是一个基于Midway.js 3.x构建的现代化后台权限管理框架它提供了强大而灵活的后端日志管理功能。本文将详细介绍如何利用cool-admin的日志聚合与集中式存储功能帮助开发者构建可靠的系统监控体系。 为什么需要专业的日志管理系统在现代Web应用中日志管理不仅仅是简单的控制台输出。一个完善的日志系统应该具备以下特性集中存储所有日志统一存储便于查询和分析结构化数据日志信息包含用户ID、操作行为、IP地址、请求参数等关键信息自动清理根据配置自动清理过期日志避免存储空间无限增长实时记录每个API请求都会被自动记录无需手动添加日志代码cool-admin的日志管理模块完美实现了这些需求让开发者可以专注于业务逻辑而无需担心日志管理的复杂性。 核心日志模块架构cool-admin的日志管理采用模块化设计主要包含以下几个核心组件1. 日志实体定义 (src/modules/base/entity/sys/log.ts)系统日志实体定义了日志的基本结构包括用户ID、操作行为、IP地址和请求参数等字段Entity(base_sys_log) export class BaseSysLogEntity extends BaseEntity { Index() Column({ comment: 用户ID, nullable: true }) userId: number; Index() Column({ comment: 行为 }) action: string; Index() Column({ comment: ip, nullable: true }) ip: string; Column({ comment: 参数, nullable: true, type: json, transformer: transformerJson, }) params: string; }2. 日志服务层 (src/modules/base/service/sys/log.ts)日志服务提供了核心的业务逻辑包括日志记录和自动清理功能自动记录用户操作记录用户ID、IP地址、请求路径和参数智能清理机制支持按时间自动清理过期日志灵活的配置日志保留时间可通过系统配置动态调整3. 日志中间件 (src/modules/base/middleware/log.ts)全局日志中间件自动拦截所有请求并记录日志开发者无需在每个控制器中手动添加日志代码Middleware() export class BaseLogMiddleware implements IMiddlewareContext, NextFunction { resolve() { return async (ctx: Context, next: NextFunction) { const baseSysLogService await ctx.requestContext.getAsync( BaseSysLogService ); baseSysLogService.record( ctx, ctx.url, ctx.req.method GET ? ctx.request.query : ctx.request.body, ctx.admin ? ctx.admin.userId : null ); await next(); }; } }cool-admin日志系统采用模块化架构实现自动化的日志收集与存储 快速配置与使用指南1. 启用日志中间件在基础模块配置中日志中间件已默认启用// src/modules/base/config.ts globalMiddlewares: [ BaseTranslateMiddleware, BaseAuthorityMiddleware, BaseLogMiddleware, // 日志中间件 ],2. 配置日志保留时间通过系统配置界面可以轻松设置日志保留时间// 通过API设置日志保留时间单位天 POST /admin/base/sys/log/setKeep { value: 30 // 保留30天 } // 获取当前日志保留时间 GET /admin/base/sys/log/getKeep3. 手动清理日志系统提供了手动清理日志的接口// 清理所有日志 POST /admin/base/sys/log/clear // 清理过期日志基于配置的保留时间 // 自动执行无需手动调用⏰ 自动化日志清理机制cool-admin内置了定时任务每天自动清理过期日志// src/modules/base/job/log.ts Job({ cronTime: FORMAT.CRONTAB.EVERY_DAY, // 每天执行一次 start: true, }) export class BaseLogJob implements IJob { async onTick() { this.logger.info(清除日志定时任务开始执行); const startTime Date.now(); await this.baseSysLogService.clear(); // 自动清理过期日志 this.logger.info(清除日志定时任务结束耗时:${Date.now() - startTime}ms); } } 日志查询与分析系统提供了强大的日志查询功能1. 分页查询接口// 获取日志分页列表 POST /admin/base/sys/log/page { page: 1, size: 20, sort: createTime, order: desc }2. 关联用户信息查询日志查询会自动关联用户表可以同时获取操作用户的姓名信息// 在日志控制器中配置的关联查询 pageQueryOp: { keyWordLikeFields: [b.name, a.action, a.ip], select: [a.*, b.name], // 包含用户姓名 join: [ { entity: BaseSysUserEntity, alias: b, condition: a.userId b.id, type: leftJoin, }, ], } 高级日志功能扩展1. 任务日志管理除了系统操作日志cool-admin还提供了任务日志管理模块// src/modules/task/entity/log.ts Entity(task_log) export class TaskLogEntity extends BaseEntity { Index() Column({ comment: 任务ID, nullable: true }) taskId: number; Column({ comment: 状态 0-失败 1-成功, default: 0 }) status: number; Column({ comment: 详情描述, nullable: true, type: text }) detail: string; }2. 自定义日志类型开发者可以根据业务需求扩展日志类型创建新的日志实体实现对应的日志服务在需要的地方调用日志记录方法️ 最佳实践建议1. 合理设置日志保留时间开发环境建议保留7-15天测试环境建议保留30天生产环境根据业务需求和数据量设置通常30-90天2. 日志监控策略定期检查日志表大小避免影响数据库性能设置日志清理告警确保定时任务正常运行对于重要操作日志建议额外备份到文件系统或日志服务3. 性能优化建议为日志表创建合适的索引userId、action、createTime定期归档历史日志到单独的表或存储系统考虑使用分区表技术处理大量日志数据 常见问题解答Q: 如何关闭日志记录功能A: 只需在 src/modules/base/config.ts 中移除 BaseLogMiddleware 中间件即可。Q: 日志数据量太大怎么办A: 可以调整日志保留时间或者实现日志归档机制将历史日志迁移到专门的存储系统。Q: 如何自定义日志格式A: 继承 BaseSysLogEntity 创建自定义日志实体并修改日志中间件中的记录逻辑。Q: 日志记录会影响系统性能吗A: cool-admin的日志记录采用异步方式对系统性能影响极小。所有日志操作都在请求处理完成后执行。 总结cool-admin(midway版)的日志管理系统提供了完整的企业级解决方案从日志收集、存储、查询到自动清理所有功能都开箱即用。通过模块化的设计和灵活的配置开发者可以轻松构建适合自己业务需求的日志监控体系。无论是小型项目还是大型企业应用cool-admin的日志管理功能都能提供可靠的支持。其简洁的API设计和强大的扩展能力让日志管理变得简单而高效。通过cool-admin的后台界面管理员可以轻松查看和分析系统日志立即体验cool-admin的完整日志管理功能克隆项目仓库git clone https://gitcode.com/gh_mirrors/co/cool-admin-midway按照官方文档配置数据库和运行环境启动项目并登录后台管理系统在系统管理 - 系统日志中查看完整的日志管理功能cool-admin的日志管理模块不仅是一个工具更是一种最佳实践的体现。它展示了如何在现代Node.js应用中构建可靠、可维护的日志系统值得每一位后端开发者学习和借鉴。【免费下载链接】cool-admin-midway cool-admin(midway版)一个很酷的后台权限管理框架模块化、插件化、CRUD极速开发永久开源免费基于midway.js 3.x、typescript、typeorm、mysql、jwt、vue3、vite、element-ui等构建项目地址: https://gitcode.com/gh_mirrors/co/cool-admin-midway创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2471765.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!