(三)egg-核心功能

(三)egg-核心功能(1)应用部署(1)应用部署1、构建从源码到真正运行,一般会拆分为构建和部署两个步骤,做到一次构建多次部署。js语言构建的过程主要是下载依赖,一般安装依赖会指定node_env=production或者只安装dependencies的依赖,构建完成之后打包成tgz文件,部署时解压启动即可。2、部署部署服务器需要预装Node.js,框架支持的版本为>=8.0....
摘要由CSDN通过智能技术生成

(1)应用部署

1、构建
从源码到真正运行,一般会拆分为构建和部署两个步骤,做到一次构建多次部署。
js语言构建的过程主要是下载依赖,一般安装依赖会指定node_env=production或者只安装dependencies的依赖,构建完成之后打包成tgz文件,部署时解压启动即可。

2、部署
部署服务器需要预装Node.js,框架支持的版本为>=8.0.0
框架内置了egg-cluster来启动Master进程,Master有足够的稳定性,不再需要使用pm2等进程守护模块。同时框架也提供了egg-scripts来支持线上环境的运行和停止。

3、监控
对服务进行性能监控,内存泄露分析以及鼓掌排除等。

  • Node.js性能平台(alinode)
  • NSolid

(2)日志

  • 所有日志文件默认都放在${appInfo.root}/logs/${appInfo.name} 路径下,例如 /home/admin/logs/example-app。
  • 在本地开发环境 (env: local) 和单元测试环境 (env: unittest),为了避免冲突以及集中管理,日志会打印在项目目录下的 logs 目录,例如 /path/to/example-app/logs/example-app。
    自定义日志路径:
// config/config.${env}.js
exports.logger = {
   
  dir: '/path/to/your/custom/log/dir',
};

日志分类:

  • appLogger ${appInfo.name}-web.log,例如 example-app-web.log,应用相关日志,供应用开发者使用的日志。
  • coreLogger egg-web.log 框架内核、插件日志。
  • errorLogger common-error.log 实际一般不会直接使用它,任何 logger 的 .error() 调用输出的日志都会重定向到这里,重点通过查看此日志定位异常。
  • agentLogger egg-agent.log agent 进程日志,框架和使用到 agent 进程执行任务的插件会打印一些日志到这里。

日志打印:


//处理请求时的日志
ctx.logger.debug('debug info');
ctx.logger.info('some request data: %j', ctx.request.body);
ctx.logger.warn('WARNNING!!!!');

// 错误日志记录,直接会将错误日志完整堆栈信息记录下来,并且输出到 errorLog 中
// 为了保证异常可追踪,必须保证所有抛出的异常都是 Error 类型,因为只有 Error 类型才会带上堆栈信息,定位到问题。
ctx.logger.error(new Error('whoops'));

//应用级别日志
// app.js
module.exports = app => {
   
  app.logger.debug('debug info');
  app.logger.info('启动耗时 %d ms', Date.now() - start);
  app.logger.warn('warning!'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值