【问题标题】:Is there a way to send browser console messages to a remote syslog (or other) server?有没有办法将浏览器控制台消息发送到远程系统日志(或其他)服务器?
【发布时间】:2021-10-20 12:35:53
【问题描述】:

我希望我的 Web 应用程序的控制台输出到集中式日志记录系统。我在接收方(系统日志|任何服务器)非常灵活。

有很多包可以将消息发送到服务器(例如,一个快速的解决方案是将 fetch 发送到 ELK 堆栈)。

这不是我要寻找的:我希望转发控制台错误/警告(以及应用程序生成的错误/警告,但这部分很简单)。

对于这个问题是否有双方同意的解决方案?

【问题讨论】:

标签: javascript logging console syslog


【解决方案1】:

可能比解决方案更多的是 POC,但可以使用远程调试协议。使用火狐

1- 启动调试服务器,将捕获此实例的控制台。应在此处打开要调试的页面。必须打开开发工具。

kdesu -u lmc -c "firefox --start-debugger-server 9123"

2- 通过打开 about:debugging 并连接到调试服务器来启动调试 Firefox 客户端。这个实例可能只对数据包起作用。

3- 使用tshark抓包。输出可以发送到日志记录工具。

tshark -i lo -f 'tcp port 9123' -Y 'data.data contains "pageError"' -T ek -e tcp.payload | jq -r '.layers.tcp_payload[0]' - | head -n2 | xxd -r -p

在“Loopback: lo”上捕获

输出 这些 json 对象可能会被发送到日志记录工具。

3 682:{"type":"pageError","pageError":{"errorMessage":"此页面使用非标准属性“zoom”。考虑在相关属性值中使用calc(),或者使用“ transform”以及“transform-origin: 0 0”.","errorMessageName":"","sourceName":"https://www.acordesdcanciones.com/2020/12/la-abandone-y-no-sabia -chino-hidalgo.html","sourceId":null,"lineText":"","lineNumber":0,"columnNumber":0,"category":"Layout","innerWindowID":10737418988,"timeStamp" :1629339439629,"warning":true,"error":false,"info":false,"private":false,"stacktrace":null,"notes":null,"chromeContext":false,"cssSelectors":" ","isPromiseRejection":false},"from":"server1.conn1.child83/consoleActor2"}

另一个tshark单线

tshark -i lo -f 'tcp port 9123' -Y 'data.data contains "pageError"' -T fields -e data.data | tail -n +6 | head -n3 | xxd -r -p >> data.json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2021-04-19
    相关资源
    最近更新 更多