当前位置: 首页 > wzjs >正文

男人和女人做性网站上海网站优化公司

男人和女人做性网站,上海网站优化公司,潍坊专业企业营销策划有哪些,成都建网站哪家好开发时你写: console.log(进来了); 上线后出 bug,产品问: “这个用户为啥订单创建失败?” 你打开服务器一看,啥也没有。于是陷入盲猜、靠运气 debug 的地狱模式。 你需要日志。不是调试用的,而是生产可追…

开发时你写:

console.log('进来了');

上线后出 bug,产品问:

“这个用户为啥订单创建失败?”

你打开服务器一看,啥也没有。于是陷入盲猜、靠运气 debug 的地狱模式。

你需要日志。不是调试用的,而是生产可追溯的

本篇我们讲讲:

如何在 Node.js 项目中构建一个 结构清晰、功能全面、适合生产环境的日志系统

一、日志系统需要满足哪些核心能力?

能力

含义

分级分类

info、warn、error、debug,不同级别记录

可持久化

存磁盘、发远程、进数据库

可筛查

带时间、用户、路径、traceId 等信息

可格式化

JSON、文本、彩色 console

可扩展

接入监控系统,发送告警,支持日志聚合服务

二、日志库推荐:winston / pino

winston(功能全、文档好、插件多)

npm install winston
import winston from 'winston';const logger = winston.createLogger({level: 'info',format: winston.format.combine(winston.format.timestamp(),winston.format.json()),transports: [new winston.transports.Console(),              // 控制台new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),new winston.transports.File({ filename: 'logs/combined.log' }),],
});

三、日志等级与使用规范

等级

用于记录

error

程序异常、业务错误

warn

潜在问题、预期外但非致命事件

info

请求成功、关键行为记录

debug

调试信息,开发/测试环境开启

使用建议:

logger.info('User login success', { userId: 123 });
logger.error('Create order failed', { error: e.message, reqId });

四、给每个请求打上 traceId(链路追踪)

为了把一串相关日志串起来:

  1. 在中间件中生成唯一 ID(如 uuid)

  2. 注入到 ctx/request 中,写入每条日志

const { v4: uuidv4 } = require('uuid');app.use(async (ctx, next) => {ctx.traceId = uuidv4();await next();
});

然后写日志时统一带上:

logger.info('Processing payment', { traceId: ctx.traceId });

这样你就能一眼查出“这一波请求发生了啥”。

五、日志落盘与分环境配置

推荐结构:

logs/
├── error.log
├── combined.log
├── access.log

开发环境只打印 console

生产环境写文件 + 控制台(可彩色输出)

if (process.env.NODE_ENV !== 'production') {logger.add(new winston.transports.Console({format: winston.format.simple()}));
}

六、接入远程日志系统(推荐方式)

目标系统

工具

阿里云 SLS

aliyun-sls-sdk

ElasticSearch

filebeat + logstash

Loki + Grafana

winston-loki 插件

日志告警(如钉钉)

winston-dingding 等 webhook 插件

建议:关键 error 日志可额外推送报警渠道

七、扩展:用户行为日志 / 操作记录系统设计

除了系统层级的 error/info/debug,你还应该记录 业务行为日志,例如:

  • 谁登录了系统?

  • 谁删除了某条数据?

  • 谁修改了用户权限?

  • 谁导出了哪些数据?

这些信息不仅有助于:

  • 审计追责

  • 用户行为分析

  • 风控与安全预警

  • 后台展示操作记录

建议做法:

  1. 定义一个 log_behavior 表,结构如:

CREATE TABLE log_behavior (id BIGINT PRIMARY KEY AUTO_INCREMENT,user_id BIGINT,action VARCHAR(64),target_type VARCHAR(64),target_id BIGINT,timestamp DATETIME,detail TEXT
);

2. 在关键业务逻辑中插入行为日志:

await behaviorLogger.log({userId: ctx.state.user.id,action: 'delete_user',targetType: 'user',targetId: deletedUser.id,detail: JSON.stringify({ reason: 'admin operation' }),
});

3. 可配合后台系统展示为“操作日志模块”。

八、日志系统落地注意事项清单 

建议做法

❯ 文件命名

按日期拆分,或按级别分文件(logs/error-20240512.log)

❯ 格式

JSON 格式日志利于机器读取(如 ELK)

❯ 打印内容

包含 userId、traceId、req.path、IP、UA 等上下文信息

❯ 保留期限

每日日志建议保留 7~30 天,可用定时清理脚本

❯ 安全性

过滤敏感字段,如密码、token,不应打印入日志

总结

日志不是“写给自己看的调试输出”,它是:

  • 问题追溯的核心线索

  • 用户行为的安全记录

  • 系统稳定的前置保障

  • 可观测性的最底层能力

稳定的项目,不是靠程序没出 bug,而是出了 bug 你“知道它在哪、为什么、什么时候发生的”。

构建一套规范、分级、可扩展的日志系统,是任何线上项目的“标配基建”。

http://www.dtcms.com/wzjs/269585.html

相关文章:

  • 打电话沟通做网站话术seo点击软件排名优化
  • 怎么做教育类型的网站淘宝店铺推广方法
  • 免费建立个人app网站免费推广的渠道有哪些
  • 手机软件制作和做网站相同百度seo点击软件
  • 做网站显示上次登录时间代码关键词排名零芯互联关键词
  • 网站抽奖模块怎么做百度提交网站收录入口
  • 设计精美的网站怎么出售友情链接
  • 做网店装修的网站有哪些内容数据分析网站
  • 代码运行框wordpress6seo排名优化培训
  • 无锡鑫融建设网站b站免费版入口
  • 手工做女宝宝衣服的网站玉林网站seo
  • 青岛市建设监督管理局网站综合搜索引擎
  • 360网站seo如何做免费友情链接网页
  • 公司做网站需要给百度交钱吗58百度搜索引擎
  • 本地网站建设公司永久免费用的在线客服系统
  • 三亚做网站公司搜索排名广告营销
  • 做二手机网站合肥seo培训
  • 大鹏网络网站建设seo从零开始到精通200讲解
  • 建设银行网站登录如何转账seo网站优化培训公司
  • 韶关手机网站建站湖南靠谱seo优化报价
  • 武汉高端网站建设公司网站如何建设
  • 网站如何优化排名杭州网站优化搜索
  • 甘肃省通信管理局 网站备案信息流广告加盟代理
  • dw做的网站如何发布阿里云服务器
  • 数据库查询网站模板职业培训学校加盟合作
  • 梧州做网站建设google官方下载
  • 自动与手动控制电路图优搜云seo
  • 用jsp做的网站源代码网站关键词在哪里看
  • java做音乐网站杭州网站seo价格
  • 中国建设银行泗水支行的网站培训机构营业执照如何办理