Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
今天,抽空了浏览了下node.js ,哈哈,看了一篇入门的文章(http://www.nodebeginner.org/index-zh-cn.html),自我感觉是入门了,不过里面一句话,挺有感悟:
不过,这些毕竟都是前端技术,尽管当想要增强页面的时候,使用jQuery总让你觉得很爽,但到最后,你顶多是个JavaScript用户,而非JavaScript开发者。然后,出现了Node.js,服务端的JavaScript,这有多酷啊?于是,你觉得是时候该重新拾起既熟悉又陌生的JavaScript了。但是别急,写Node.js应用是一件事情;理解为什么它们要以它们书写的这种方式来书写则意味着——你要懂JavaScript。这次是玩真的了。
是滴,这次是要玩真的了。。
话说,看到一个不错的东西log.io,官方解释是说:
Real-time log monitoring in your browser
Powered by node.js + socket.io
实时日志监控,我们可能想到linux下的tail -f ,log.io 也是大致这个意思,不过比tail -f 功能强多了。这个东西也是C/S 架构的哦。
下面实际演示一下:
1、安装
这东西,依赖nodejs,我们先把nodejs装上,参考官方的安装方式:(http://nodejs.org/download/)
我这里使用的是mac 的brew 安装方式:
brew install nodejs
或者利用yum:
yum install nodejs
之后我们就可以使用npm来安装log.io 了
npm install -g log.io --user "chenqing"
安装之后,启动服务端(不需要配置):
log.io-server
之后配置客户端
vim ~/.log.io/harvester.conf
exports.config = {
nodeName: "application_server",
logStreams: {
test: [
"/Users/chenqing/test.log"
]
},
server: {
host: '0.0.0.0',
port: 28777
}
}
启动客户端:log.io-harvester
我们来测试一下:
首先在命令行下
[ chenqing@Qing ~ ] for i in {1..1000};do echo `date ` >> test.log ;done
打开浏览器:http://localhost:28778/
相关推荐
-
监控用户是否关闭浏览器的js代码
test function RunOnBeforeUnload() { window.event.returnValue = '关闭浏览器将退出系统.'; } [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 效果如下所示: 当wondow.event.returnValue为空的时候,这个选择提示框是不会出现的. 可是问题又来了:假如我希望用户点击"确定"按钮关闭浏览器的时候能够保存用户相关数据.那么我又应该怎么做呢?看来只有用onunload参数了. 将上面的代码修改如下
-
JavaScript 监控微信浏览器且自带返回按钮时间
比如现在有一个操作 是 A->B->C->B 在B页面的返回键 第一次返回的是C 如果想直接返回A或者其他地方 则需要触发返回事件 pushHistory(); window.addEventListener("popstate", function(e) { //alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能 window.location = 'http://www.baidu.com'; }, false
-
JS监控关闭浏览器操作的实例详解
JS监控关闭浏览器操作的实例详解 需求如下: 用户关闭浏览器通知后台. 方案如下: 1.采用js监控关闭浏览器操作. 2.用户关闭浏览器的时候发ajax请求到后台,执行相应的业务操作 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> &l
-
js监控IE火狐浏览器关闭、刷新、回退、前进事件
<html> <head> <title>test</title> <script language ="javaScript"> <!--关闭浏览器 --> var flag = true; window.onbeforeunload = function () { if (flag) { var evt = window.event || arguments[0]; var userAgent = naviga
-
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
今天,抽空了浏览了下node.js ,哈哈,看了一篇入门的文章(http://www.nodebeginner.org/index-zh-cn.html),自我感觉是入门了,不过里面一句话,挺有感悟: 复制代码 代码如下: 不过,这些毕竟都是前端技术,尽管当想要增强页面的时候,使用jQuery总让你觉得很爽,但到最后,你顶多是个JavaScript用户,而非JavaScript开发者.然后,出现了Node.js,服务端的JavaScript,这有多酷啊?于是,你觉得是时候该重新拾起既熟悉又陌生的
-
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
在node.js中只需要几行代码就可以发送http请求,通过检查statusCode可以判断该网址服务是否有效. 如下代码: var http = require('http') var checkExists = function(urlPath, cb) { var options = { host: '192.168.2.101', port: 8064, path: encodeURI(urlPath)} var req = http.request(options, function(
-
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
用js限制网页只在微信浏览器中打开 js $(function(){ //判断页面是否是在微信浏览器打开 //对浏览器的UserAgent进行正则匹配,不含有微信独有标识的则为其他浏览器 var useragent = navigator.userAgent; if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') { window.location.href = "wxError.html";//若不是微信浏览器,跳转到
-
Node.js websocket使用socket.io库实现实时聊天室
认识websocket WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duple).一开始的握手需要借助HTTP请求完成. 其实websocket 并不是很依赖Http协议,它也拥有自己的一套协议机制,但在这里我们需要利用的socket.io 需要依赖到http . 之前用java jsp写过一个聊天,其实实现逻辑并不难,只是大部分时间都用在UI的设计上,其实现原理就是一个基于websocket的通信,要想做一个好的聊天室,我觉得大部
-
Node.js 使用递归实现遍历文件夹中所有文件
如标题所示,遍历文件夹下的所有文件,主要功能如下: 传入一个路径,读取路径里面所有的文件 遍历读取的文件,判断当前文件是文件还是文件夹 当前目录为文件,打印出当前文件绝对路径 当前目录为文件夹,获取文件夹路径,继续读取路径下文件 遍历完目录中的所有文件为止 代码中用到的几个方法 path.resolve(path) 一个路径或路径片段解析成一个绝对路径,返回解析后的路径字符串 fs.readdir(path[,option],callback) 读取目录下面的文件,返回目录下的文件列表对象,如果
-
javascript中Date()函数在各浏览器中的显示效果
1.JavaScript没有基本的日期数据类型,所以只能显式的创建Date对象.例如:var myDate=new Date(); 2.为了创建一个存储了特定日期的,或者时间的Date对象,可以简单的把日期或者日期与时间放到括号里面: var myDate=new Date("2015/06/16 10:30"); alert(myDate); 火狐浏览器显示的效果为: IE浏览器显示效果: 谷歌浏览器显示效果为: 注意:如果上面的代码这样写;在火狐和IE浏览器里面报错: var my
-
Node.js利用console输出日志文件的方法示例
通常我们在写Node.js程序时,都习惯使用console.log打印日志信息,但这也仅限于控制台输出,有时候我们需要将信息输出到日志文件中,实际上利用console也可以达到这个目的的,今天就来简单介绍一下. 我们首先创建如下文件: // index.js let fs = require('fs'); let options = { flags: 'a', // append模式 encoding: 'utf8', // utf8编码 }; let stdout = fs.createWri
-
在 Node.js 中使用原生 ES 模块方法解析
从版本 8.5.0 开始,Node.js 开始支持原生 ES 模块,可以通过命令行选项打开该功能.新功能很大程度上得归功于 Bradley Farias. 1.演示 这个示例的代码目录结构如下: esm-demo/ lib.mjs main.mjs lib.mjs: export function add(x, y) { return x + y; } main.mjs: import {add} from './lib.mjs'; console.log('Result: '+add(2, 3
-
如何将Node.js中的回调转换为Promise
前言 在几年前,回调是 JavaScript 中实现执行异步代码的唯一方法.回调本身几乎没有什么问题,最值得注意的是"回调地狱". 在 ES6 中引入了 Promise 作为这些问题的解决方案.最后通过引入 async/await 关键字来提供更好的体验并提高了可读性. 即使有了新的方法,但是仍然有许多使用回调的原生模块和库.在本文中,我们将讨论如何将 JavaScript 回调转换为 Promise.ES6 的知识将会派上用场,因为我们将会使用 展开操作符之类的功能来简化要做的事
-
Node.js中ES6模块化及Promise对象
目录 ES6模块化 CommonJS 规范 模块化开发好处 模块化规范划分 ES6模块化开发注意点 ES6 导入导出 Promise对象 使用语法 Promise中的同步异步 Promise 封装 第三方then-fs解决回调地狱 ES6模块化 CommonJS 规范 node.js 遵循了 CommonJS 的模块化规范.其中: 导入其它模块使用 require()方法 模块对外共享成员使用 module.exports 对象 模块化开发好处 模块化开发的好处有很多,其中: 实现了在JS文件中
随机推荐
- iOS10实现推送功能时的注意点和问题总结
- pt px 的概念 与 对应关系
- java实现的图片裁剪功能示例
- 简单说说Java SE、Java EE、Java ME三者之间的区别
- iOS学习笔记(十六)——详解数据库操作(使用FMDB)
- 非常精妙的PHP递归调用与静态变量使用
- PHP实现Unicode编码相互转换的方法示例
- python实现2014火车票查询代码分享
- python中异常捕获方法详解
- Android系统中的蓝牙连接程序编写实例教程
- mysql 修改密码和设置允许远程登录
- Json和Jsonp理论实例代码详解
- 使用nginx+tomcat实现静态和动态页面的分离
- MySQL中的binlog相关命令和恢复技巧
- 详解用Spring Boot零配置快速创建web项目
- 简单介绍iOS开发中关于category的应用
- 使用python搭建Django应用程序步骤及版本冲突问题解决
- 在ASP.NET 2.0中操作数据之五:声明参数
- Android禁止横屏竖屏切换的有效方法
- Java多线程atomic包介绍及使用方法