Javascript

【金秋打卡】第2天 eggjs 调试技巧

本文主要是介绍【金秋打卡】第2天 eggjs 调试技巧,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:web前端架构师

课程章节:第14周 第四章 egg基础知识

主讲老师:张轩

课程内容: eggjs 调试技巧

eggjs 调试技巧

在我们开发过程中,我们可能需要知道代码执行过程中的信息,我们可以使用在代码中使用 console.log 进行打印

框架内置了功能强大的日志功能,可以非常方便的打印各种级别的日志到对应的日志文件中,每一个 logger 对象都提供了 4 个级别的方法(级别从低到高):

  • logger.debug()
  • logger.info()
  • logger.warn()
  • logger.error()
import { Controller } from 'egg';

export default class HomeController extends Controller {
  public async index() {
    const { ctx } = this;
    ctx.body = await ctx.service.test.sayHi('egg');
    ctx.logger.error('err info');
  }
}

相关文档链接

  • https://www.eggjs.org/zh-CN/basics/objects#logger
  • https://www.eggjs.org/zh-CN/core/logger

使用 vscode 进行断点调试

在项目根目录下的 .vscode 文件夹下(没有就创建该文件)新建文件launch.json

配置如下

// .vscode/launch.json
{
  "configurations": [
    {
      "name": "Launch Egg",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "npm",
      "runtimeArgs": [ "run", "debug" ],
      "console": "integratedTerminal",
      "restart": true,
      "autoAttachChildProcesses": true
    }
  ]
}

然后在 vscode 中将我们所需要的代码打个断点就可以了(点击调试代码的最左边,即行号左边,点击后会出现一个红点)

也可以设置 vscode debug:Auto Attach: Smart ,这个使用起来也非常方便,随便写个 js 代码就可以使用 node进行调试,但是当我们调试整个项目时,还是使用 vscode 配置文件会更好

日志

日志路径

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

日志分类

框架内置了几种日志,分别在不同的场景下使用:

  • 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 进程执行任务的插件会打印一些日志到这里。

其他信息可以参考官方文档。https://www.eggjs.org/zh-CN/core/logger

图片描述

这篇关于【金秋打卡】第2天 eggjs 调试技巧的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!