网站首页 > 技术文章 正文
Node.js 是一个开源和跨平台的 JavaScript 运行时环境 ,之前有了解但并不精通, 本系列将重新来学习Node.js 并将相对要点做记录和整理。
Console
Console 提供简单的控制台输出, 类似于浏览器中提供的控制台控制。
使用Console例如:
public consoleTest(){
const out = createWriteStream('console.out.txt');
const err = createWriteStream('console.err.txt');
const myConsole = new console.Console(out, err);
myConsole.log('hello world');
myConsole.log('hello %s', 'world');
myConsole.error(new Error('Whoops, something bad happened'));
myConsole.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);
const name = 'AAA';
myConsole.warn(`Danger ${name}! Danger!`);
}
可以看到对应的输出已经输出到对应的文件中。
console.out.txt
hello world
hello world
┌─────────┬─────┬─────┐
│ (index) │ a │ b │
├─────────┼─────┼─────┤
│ 0 │ 1 │ 'Y' │
│ 1 │ 'Z' │ 2 │
└─────────┴─────┴─────┘
全局的console其实是特殊的Console, 他把输出发送到process.stdout和process.stderr.
new Console({ stdout: process.stdout, stderr: process.stderr });
较为常用的方法包括
- console.assert(value[,...message]) : 如果value是false,则写入消息。
- console.clear(): 当stdout是终端时, 清除终端。
- console.count([label]):维护内部的lable计数器。
- console.countReset([label]):重置计数器
- console.debug(data[,...arg]):console.log的别名
- console.group([...label]): 将后续行的缩进增加 groupIndentation 长度的空格。
- console.groupEnd():将后续行的缩进减少 groupIndentation 长度的空格。
- console.log():stdout输出
- console.table(tabularData[,properties]):表格输出
- console.time([label]):启动计算持续时间计时器, label标识
- console.timeEnd([label]):停止之前的time(),并将计时结果输出
- console.timeLog([label]):对于先前通过调用 console.time() 启动的计时器,将经过时间和其他 data 参数打印到 stdout
Debug
类似Console的增强版本, 和console.log 不同的是我们不需要再代码中注释掉日志, 默认情况下处于关闭状态, 并可以通过NODE_DEBUG环境变量有条件打开。
import { debug } from "util";
let d= debug("fo");
d("tessssssssst")
当环境变量开启:NODE_DEBUG=fo 后, 则对应的log被打开。
util.debuglog(section[, callback])
- section 标识正在为其创建 debuglog 函数的应用部分的字符串。
- callback 第一次调用日志函数时调用的回调函数参数是更优化的日志函数。
Debug 包
工程中, 可以将log相关通过debug包进行使用和管理。
npm install debug -s 的方式引入debug包
import {debug} from 'debug';
const APP_NAME = 'test-app';
export class LogService {
private pDebug: any;
private pInfo: any;
private pWarn: any;
private pError: any;
constructor(
) {
this.pDebug = debug(`${APP_NAME}:DEBUG`);
this.pWarn = debug(`${APP_NAME}:WARN`);
this.pInfo = debug(`${APP_NAME}:INFO`);
this.pError = debug(`${APP_NAME}:ERROR`);
this.pDebug.log = console.info.bind(console);
this.pInfo.log = console.info.bind(console);
this.pWarn.log = console.warn.bind(console);
this.pError.log = console.error.bind(console);
}
get debug() {
return this.pDebug;
}
get info() {
return this.pInfo;
}
get warn() {
return this.pWarn;
}
get error() {
return this.pError;
}
}
使用方法:
const log = new LogService();
log.debug("abcde")
- 上一篇: Vue+Ts项目中根目录.文件配置详解
- 下一篇: 修改vue的配置项支持生产环境下二级目录访问的方法
猜你喜欢
- 2024-10-04 nodejs配置和环境的搭建(nodejs 配置)
- 2024-10-04 广州蓝景分享—Webpack 基础教学,正在自学前端的你赶快收藏起来
- 2024-10-04 五分钟了解 Node.js Shebang(五分钟了解中国历史)
- 2024-10-04 怎么解决koa写server发布的噩梦(koa server)
- 2024-10-04 Node直出方案的实现及性能测试(node技术)
- 2024-10-04 webpack5入门到实战(5-处理 js 资源)
- 2024-10-04 Node-red Function&注入功能介绍
- 2024-10-04 Linux实战017:Ubuntu搭建NodeJS开发环境
- 2024-10-04 手把手告诉你如何安装多个版本的node
- 2024-10-04 Node编程基本语法(nodejs基础语法)
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)