如何将服务端log实时在页面输出展示?
发布于 10 年前 作者 petersun 18400 次浏览 最后一次编辑是 8 年前 来自 问答

RT。 顺便问问控制台里的输出node如何获取到?

16 回复

服务端的为什么要在页面显示? 一般前后端是分开的

var log = console.log; console.log=function(){log(arguments);ioout(arguments)}

ioout是你自己写的SOCKETIO发消息的函数。

哪个控制台?nodejs控制台?浏览器控制台?

具体场景是怎么样的? 不同环境会差别很大的

@MiguelValentine 恩,目前我想着的也就是服务器来推。。。。

@eeandrew nodejs控制台

@jiyinyiyong 有一个场景是想把gulp的输出信息在页面展示,用户的所有操作都是在web上进行的。譬如当前打包进行到哪个阶段了,等等。

@russj 相当于在web端可以实时查看服务器的访问日志。

如果是调用终端的命令, 那么 c = process.exec('find /', cb) 测样的代码, 这个 c 可以监听到事件的… 讲起来比较乱, 直接看例子吧: http://stackoverflow.com/a/15515651/883571

如果要在web页面上展示后台的实时数据,从页面端讲可以实现的技术:1、页面轮询 2、websocket 对于nodejs来说如果不用websocket都有点说不过去了。基于这个思路,web页面和服务端通信的方式其实已经确定了,只要按照socketio实现就好了。

我们再说服务端。先说收集都是node应用产生的日志,这个最简单,随便找个日志框架,把日志输出到mongo的capped的collection,再利用capped collectoin 的tail cursor,很容易就可以把变化的内容通过socketio输出到web页面上去了。 如果要监控其他系统写的文件,这个场景就多了,你要自己分析才行了。 希望有帮助

我也正在做这个,楼主实现没有,分享一下呗,谢谢

有个npm 包是专门做这个的,名字忘了。 web页面展示,而且还有不同的level 的log。

回到顶部