日志 / 可观测性

日志查看器支持 JSON、logfmt、Kubernetes 与 Docker 日志

粘贴或打开一份日志文件,点击“格式化”,再按级别过滤、搜索关键字、切换时间戳展示方式——过滤和搜索都在已格式化的结果上即时生效。

日志查看器

示例:
格式预设时间戳
级别

日志文本

全部在浏览器本地运行,粘贴或打开的内容不会被上传。

解析结果

格式化一段日志后这里会显示结果表格。

粘贴日志或载入示例,然后点击“格式化”。

一条 grep 命令能抓到几行匹配结果,但当一份工单里混着结构化的 JSON 事件、中间件随手打出的一行 logfmt、还有从 Kubernetes 容器里复制来的 stdout 时,光靠肉眼分辨哪些是错误、某个 Unix 时间戳到底对应几点、哪些请求属于同一个用户 ID,既慢又容易看错。

这款日志查看器就是为了应对这种“剪贴板里一坨混合格式日志”的时刻:它逐行自行判断每一行的形状,尽量提取出级别和消息正文,缩小范围时不需要重新运行任何计算。它不是替代真正盯着实时日志管道的采集系统——它处理的是你粘贴进来或从本地文件打开的一段静态文本,一次性地在你当前这个浏览器标签页里完成。有人把这类工具叫日志查看器,也有人叫它日志格式化工具,或者在线日志分析工具,说法不同,做的都是同一件事:把粘贴进来的文本变成看得懂的表格,附带按关键字做日志过滤的能力。

为什么用这款日志查看器

为“一次粘贴、多种格式混在一起”而设计,而不是只认一种格式。

一次粘贴,逐行识别五种形状

JSON 事件、logfmt 的键=值、Kubernetes 容器 CRI 格式的 stdout、Docker json-file 驱动的一行 JSON,以及纯文本,可以同时出现在同一段粘贴内容里——“自动检测”逐行独立判断,不强迫整段按同一种格式解析,探测不出任何已知结构的行仍会按纯文本显示,不会被丢弃。

一段混合了 JSON、logfmt、Kubernetes 与 Docker 日志的粘贴内容,每一行都标出了探测到的格式

过滤、搜索与时间戳展示即时生效

对一段新粘贴的内容点击“格式化”是需要手动确认的一步,但表格出现之后,勾选或取消某个级别、输入搜索词、在原始、本地时间、UTC、相对时间之间切换时间戳展示,全都在已格式化的结果上立刻重算——不需要为这些操作再点一次“格式化”。

结果表格中勾选某个级别复选框、输入搜索词后可见行立即更新,并没有再次点击格式化按钮

从一段混合粘贴到一张可信的表格

三步操作,以及每一步背后实际发生了什么。

01

粘贴、打开文件或载入混合示例

可以直接粘贴日志文本,也可以点击“打开文件”用浏览器本地读取一个 .log/.txt/.json 文件——这个文件不会被上传到任何地方。格式预设默认是“自动检测”,多数情况下不需要自己挑选格式;但如果确定整段都是同一种格式,比如全是 logfmt,强制选中对应预设可以跳过逐行探测。

  • Ctrl/Cmd+Enter 可以不碰鼠标就触发格式化
02

点击“格式化”并阅读结果表格

格式化不会随着输入自动运行——每敲一个字符就重新判断每一行的形状是没必要的开销。点一次“格式化”(或用快捷键),每一个非空行都会变成表格里的一行;点某一行的“字段”按钮可以看到具体提取出了什么,包括一个 JSON 对象或一对 logfmt 键值的原始字段。

  • 探测不出任何已知形状的行仍然会得到一行,格式标为“文本”,不会被静默丢弃或当成错误
03

不重新格式化即可过滤、搜索与导出

级别复选框默认全部勾选,所以在取消勾选之前不会隐藏任何内容;探测不出级别的行无论如何勾选都会一直显示——把无法归类的内容悄悄过滤掉只是猜测,不是真正的过滤。搜索框可以切到正则模式,时间戳这一列可以在原始、本地时间、UTC、相对时间之间切换,这些都不会改动粘贴进去的文本。复制或下载会精确导出当前过滤后的行,格式是纯文本或带有解析出的 epoch 时间戳的结构化 JSON。

  • 切换级别过滤、搜索或时间戳展示都不会让表格变灰——只有修改输入内容或格式预设才会,因为只有这两者才真的需要重新格式化
跳到日志查看器

这张表格比原始文本多给了什么

探测、过滤与导出,专为一段没有为之写过解析器的粘贴内容而设计。

逐行识别五种格式,而不是整段只认一种

JSON、logfmt、Kubernetes CRI、Docker json-file 与纯文本对每一行独立判断,来自多个来源的一段混合粘贴依然能得到一张统一、一致的表格,不需要先手动拆开。

级别过滤与关键字/正则搜索

可以同时按严重级别和搜索词缩小表格范围,并可选切换到正则匹配,全部在已格式化的行上即时重算,不会重新触发探测。

四种时间戳展示方式,且从不改写原文

把时间戳这一列在粘贴的原始文本、本地时间、UTC 或类似“3 分钟前”的相对说法之间切换——只改变这一列怎么显示,输入框里的原始文本始终不变。

逐行字段面板与两种导出格式

展开任意一行即可看到探测器提取出的全部字段——一个 JSON 对象的键、一对 logfmt 键值,或者 Kubernetes 的 stream 与 tag;可以把当前过滤后的行导出成纯文本,或带有解析出的 epoch 时间戳的结构化 JSON。

这个工具刻意不做的事

真实的边界,不是营销话术。

Kubernetes 与 Docker 只是格式预设,从不是真实连接
选中 Kubernetes 或 Docker 格式预设,只是告诉探测器该按哪种行的形状去匹配(CRI 格式的 stdout,或 json-file 驱动的一行 JSON);它绝不会连接真实的 Kubernetes API 或 Docker daemon 去拉取实时日志,工具本身不会发出任何网络请求。
探测不出级别的行永远不会被级别过滤隐藏
如果探测器无法从一行里可靠地提取出级别,无论勾选或取消哪些级别复选框,这一行都会一直显示——把探测不出的内容悄悄过滤掉是武断的猜测,不是真正的过滤。
时间戳展示从不改写输入
在原始、本地时间、UTC、相对时间之间切换,只改变“时间戳”这一列怎么渲染探测到的值;输入框里的文本不会被触碰。如果需要单独批量转换时间戳,请使用站内独立的 Unix 时间戳转换工具。
单次粘贴上限约 30 万字符、2 万行;单个文件上限 2MB
这个上限是为了让格式化在浏览器标签页里保持快速和可预期。超出任何一项限制都会整体拒绝并给出明确提示,而不是悄悄截断日志,这样你始终清楚到底格式化了什么内容。

日志查看器常见问题

把日志粘贴进在线工具之前,大家最常问的问题。

有没有免费、在线、不用注册的 JSON 日志查看器?

有。粘贴或打开日志,点击“格式化”,这款日志查看器会立即生成表格——不需要注册、安装或上传,全部以 JavaScript 在当前浏览器标签页里运行。

把日志文件粘贴到网页工具里安全吗?

粘贴或打开的内容不会被发送到任何地方。格式化、过滤、搜索和导出都在浏览器本地完成,没有任何服务器端上传、存储或记录——这一点很重要,因为真实日志里经常带着用户 ID、IP 等敏感信息。

logfmt 和 JSON 日志格式有什么区别?

logfmt 是一行内的扁平“键=值”格式(level=info msg="done" duration=12ms),设计上既方便人眼阅读也方便 grep;JSON 日志则是每行一个 JSON 对象,结构更完整、更适合程序化解析,但肉眼扫读没那么直观。这款日志查看器会自动识别并提取两种格式的字段,不需要提前挑选解析方式。

日志里的时间戳怎么转换成可读的日期?

格式化之后,把“时间戳”下拉切到本地时间、UTC 或相对时间,每一行探测到的时间戳都会按这个格式重新渲染——输入框里的原始文本不会被改动。如果只是想单独转换一个时间戳(不在日志里),可以用站内专门的 Unix 时间戳转换工具。

这个工具会连接我的 Kubernetes 集群吗?

“Kubernetes 容器日志”只是一种格式预设,用来告诉这款日志查看器该按哪种行的形状去匹配已经复制出来的文本——它不是真实连接,不需要任何凭据,工具也不会发出任何网络请求。如果需要对正在运行的集群做实时查看,需要另一个真正联网的工具。

怎么按关键字在线过滤日志?

在搜索框里输入关键字,表格会立即缩小到包含它的行,不需要重新点“格式化”。旁边的“正则”开关可以切换成正则表达式匹配,还能和级别复选框组合使用,同时按两个维度缩小范围。

发现这个工具处理错了某一行真实日志?

现在就用这款日志查看器

粘贴一段混合了 JSON、logfmt、Kubernetes 或 Docker 的日志文本,几秒钟内得到一张可过滤、可导出的表格——不用上传,不用注册。

把这款免费的日志查看器收藏起来,下次工单或终端里又贴出一堆难以阅读的混合日志时随时能用。

全部格式化都在浏览器本地完成。