idea log 不输出error_还在使用console.log()吗?Bunyan:一个简单易用的JS日志框架
Bunyan是一个简单易用的JS日志框架,可以工作在多种环境下,这里以Nodejs为例说明Bunyan的基本用法。是时候替换console.log的写法了。
安装
npm install --save bunyan
使用
// hi.jsvar bunyan = require('bunyan');var log = bunyan.createLogger({name: 'myapp'});log.info('hi');log.warn({lang: 'fr'}, 'au revoir');
运行
node hi
默认输出json格式,对人类不友好。
换一种运行方式
node hi.js | .ode_modules.binbunyan
这样就有了易读的格式。
安装到全局:
npm install -g bunyan
指定log等级
node hi.js | bunyan -l warn
指定多个输出
var bunyan = require('bunyan');//var log = bunyan.createLogger({name: 'myapp'});var log = bunyan.createLogger({ name: 'myapp', streams: [ { level: 'info', stream: process.stdout // log INFO and above to stdout }, { level: 'error', path: 'c:/temp/log/myapp-error.log' // log ERROR and above to a file } ]});log.info('hi');log.warn({lang: 'fr'}, 'au revoir');log.error('this is an error!');
将info及以上的log输出到控制台,将error及以上等级的log输出到文件。
控制台输出
文件输出
子日志log.child
bunyan可以客制化一个针对你的应用的子组件的日志
//hi.jsvar bunyan = require('bunyan');var log = bunyan.createLogger({name: 'myapp'});function Wuzzle(options) { this.log = options.log.child({widget_type: 'wuzzle'}); this.log.info('creating a wuzzle')}Wuzzle.prototype.woos = function () { this.log.warn('This wuzzle is woosey.')}log.info('start');var wuzzle = new Wuzzle({log: log});wuzzle.woos();log.info('done');
在Wuzzle中创建一个子日志,可以任意添加额外的信息(widget_type: 'wuzzle'),
对象序列化
//hi.jsvar bunyan = require('bunyan');var http = require("http");function reqSerializer(req) { return{ method:req.method, url: req.url, headers: req.headers }}var log = bunyan.createLogger({name:'myapp',serializers:{req: reqSerializer}});http.createServer(function(req, res) {log.info({req:req});res.writeHead(200, {"Content-Type": "text/html"}); res.end(` HTML Response
Hi
`);}).listen(3000);log.info("File server running on port 3000");
代码客制化request对象的输出日志,会输出请求方法,请求url和cookie信息。
运行
node hi.js | bunyan
运行后在浏览器浏览:
http://localhost:3000/
idea log 不输出error_还在使用console.log()吗?Bunyan:一个简单易用的JS日志框架相关推荐
- console 一行_你还在用 console.log 调试?
英文 | Giancarlo Buomprisco 译文 | 梁天培 链接 | juejin.im/post/5d18d6eb6fb9a07edc0b6cc4 前言:Chrome 开发工具 当您的代码 ...
- JS控制台输出,别只会 console.log 了
引言 控制台日志输出,别再只会 console.log 了,其实Console 对象还提供了很多方法.比如console.info().console.warn() .console.error()等 ...
- 神奇的null 请输出结果并进行解释 console.log([typeof null, null instanceof Object])
['object',false] 在javascript第一版本中,单个值在栈中占用32位的存储单元,而这32位存储单元又分为类型标签(1-3位)和实际数据. 类型标签存储在低位中. 000 => ...
- 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???...
在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...
- console linux 口 没输出_Console很飒,不止log
日常工作中,难免存在为了代码调试而试验性地输出一些东西,曾经都爱用alert(),高兴了弹个数据,但让人头疼的是,它会中断代码执行,得手动关掉,所以有人就用 document.write(),这样也有 ...
- AndroidT(13) Log 系统 -- C plus plus 语言格式的LOG输出(二)
1.概览 上一章提到的是在Android系统中,以C语言格式方式进行log输出.本章就来讲讲c++语言格式的. std::cout<<"This is a c++ log&q ...
- 由哪个log先输出引出的event loop思考
这篇文章就不再聊关于promise的各种好处和用法了,如果不了解请自行Google啦! 我相信很多人在面试的时候遇到过这样一道面试题: console.log(0) let p = Promise.r ...
- 扩展:js控制台输出,除了 console.log还有哪些?
介绍: js的console你可以在firefox的firedbug或者ie和google的f12调试模式下看到,这些主流浏览器的调试模式的控制可以输出一些信息,你的一些js代码测试可以直接在cons ...
- 控制台输出console.log()的用法
用console.log代替alert和document.write,工作会变得轻松.用console.log在控制台展开对象查看具体信息,可以直接看到对象信息,而不会显示[object Object ...
最新文章
- nvidia share有什么用_NVIDIA共享无法在Win10上运行或响应
- linux 多线程的基础 交通信号灯学习笔记 :信号详解
- RunLoop总结与面试
- can-utils源码解析cansend
- 【C++基础学习】二维数组的动态分配及参数传递
- macos 编译php,TODO:macOS编译PHP7.1
- java中notify是什么意思_java中wait,notify,notifyAll是什么?
- 达飞控股不断践行新时代企业责任
- 翘首以盼Windows 8
- oracle数据库简单的学多久,讲讲新人的oracle数据库学习
- linux java7 64位_linux jdk1.7 64位tar.gz下载安装配置教程(完美版)
- 一分钟学会神经网络3——图解深度学习原理(有这篇博客就够了)
- 如何将一个向量投影到一个平面上_线性代数总结 第三章 向量代数与几何计算(空间平面和直线)...
- python encoder decoder_从零开始学Python自然语言处理(25)—— 通用的Encoder-Decoder模型框架...
- 传统语音增强——基于先验信噪比的维纳滤波语音降噪算法
- android循环录制,按键精灵安卓版为什么我录制的脚本无法循环
- 什么软件可以搜索python答案_什的组词
- excel去除重复处理
- 自动打开搜狗搜索的前五个链接
- 送你一把学习【线性代数】的钥匙