首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在浏览器中显示bunyan日志?

如何在浏览器中显示bunyan日志?
EN

Stack Overflow用户
提问于 2016-02-12 21:22:52
回答 2查看 2.6K关注 0票数 5

我有一个在node.js上实现的服务器,我使用Bunyan进行日志记录。直到现在,当我需要调试问题时,我都会查看控制台中的日志,或者使用/bunyan/bin/bunyan <log_file.log>打开旧的日志文件。这变得很不理想,因为我必须使用vnc或ssh进入服务器,并且当我查看的是较旧的日志时,需要很长时间才能在bunyan cli上找到我要查找的内容。

我想扩展我的日志功能,这样我就可以提供日志文件,这样我就可以在浏览器上查看它们。到目前为止,我已经实现了以下内容:

代码语言:javascript
复制
var express = require('express');
var app = express();
var bunyan = require('bunyan');
var serveIndex = require('serve-index');

var log = bunyan.createLogger({
                            name: 'server',
                            streams: [
                            {
                                level: 'info',
                                stream: process.stdout
                            },
                            {
                                type: 'rotating-file',
                                level: 'info',
                                path: __dirname+'/logs/server-logs.log',
                                period: '1m',
                                count: 12
                            }
                            ]
                            });

app.use('/logs', serveIndex('logs', {'icons': true}))
    app.get('/logs/*',function(req,res)
    {
        var file_name = __dirname + '/logs/' + JSON.stringify(req.params['0']);
        file_name = file_name.replace(/"/g, '');
        log.info(file_name);
        var obj = fs.readFileSync(file_name, 'utf8');

        res.format({
            'application/json': function(){
                res.send(obj);
            },
            'default': function(){
                res.status(406).send('Not Acceptable');
            }
        });
    });

/*Run the server*/
app.listen(3005,function()
{
    log.info("Started.");
});

这为我提供了访问http://server/logs的能力,我可以获得所有日志文件的列表,我可以单击它们,它们就会显示在浏览器上。问题是它们仍然只是原始的json,不是一种非常友好的阅读格式。

我想要的是在浏览器中打印,就像bunyan在cli中打印一样,以一种漂亮的方式。

有什么建议吗?我已经搜索了几个小时,寻找可以做到这一点的东西,但什么也找不到。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2017-09-25 22:15:36

您可以使用frontail在提供的html页面中显示日志!

您可以使用bunyan-format包来很好地格式化bunyan日志输出!

票数 3
EN

Stack Overflow用户

发布于 2016-02-17 02:48:36

如果可以在应用程序中添加一些HTML,只需使用一些ajax请求加载bunyan日志即可。由于这只是一个JSON响应,您可以随心所欲地对其进行格式化。现代浏览器允许格式化JSON,使其更具可读性。

将JSON对象转换为字符串时,可以使用空格进行缩进:

代码语言:javascript
复制
JSON.stringify(bunyanLogsObject, null, 2);

其中:

  • bunyanLogsObject -是您的logs
  • null替换程序,read below
  • 2 -要缩进的空格数量,如果此参数实际打开

的格式

作为替换者,您可以提供一个函数来进一步格式化输入或要显示的白名单属性数组。更多信息可以在at MDN上找到。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35363723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档