Skip to content

日志查看器

把光标放在日志文件上并选择以日志方式查看…,它就会在一个为日志而不是为文本而建的窗口中打开:每行一条,每行的级别被识别并着色,有筛选,还有一个在文件仍在写入时也跟得上的追踪。

它是一个插件:可以在配置 ▸ 插件…中关闭或移除。没有它时,F3 会像显示其他文本文件一样显示日志。

显示服务日志的日志查看器,每个级别各有其颜色 (图:每个级别都有自己的颜色,视图会持续跟踪文件。)

为什么它能立刻打开

文件被映射进内存,后台只建立一个记录每行起点的索引。在内容出现在屏幕上之前,什么都不会作为文本载入,而且只有真正可见的行才会被解码。几个 GB 的日志和小日志打开得一样快,跳到末尾也不会读取中间部分。

级别与颜色

每一行都会被归类——错误、警告、信息、调试、跟踪,或者在格式什么也看不出时归为未知——并相应着色。默认颜色跟随浅色或深色外观;在插件设置中设定你自己的颜色,就会使用你的。

级别列让你一眼看出错误在哪里,筛选框把列表收窄到你要找的内容。打开正则,就用正则表达式而不是纯文本来筛选。

跟随一个仍在增长的文件

打开实时(自动滚动),窗口就会随着新行到来跟随文件末尾:索引是在追加的字节上扩展,而不是重建,所以无论文件变得多长都保持低开销。向上滚动就是在看历史;追踪在下面继续运行。

找到方向

查找… 在消息中搜索;查找(标记并跳转)…会标记每一处命中,便于在它们之间移动
转到行… 跳到某个物理行号
转到日期/时间… 跳到指定时间戳及其之后的第一行,例如 2024-01-15 10:23:45

拷贝知道什么是一条日志行:拷贝行取光标所在的那一行,拷贝条目(所有行)在一个条目跨越多行时取整个条目——例如一段堆栈跟踪——而拷贝所选行取的正是你选中的内容。

格式

log4j、log4net 和 CSV 是内置的,格式会被自动识别;窗口会显示它最终认定的那一种。如果你的日志都不是这些,可以在设置的日志格式中添加自己的:一个用命名组标出关键部分的正则表达式。

(?<time>…)   (?<level>…)   (?<msg>…)

表达式匹配不上的行仍然会出现——它只是被归为未知,而不是被丢弃,因为一份读不了的日志比一份没有颜色的日志更糟。

显示

显示行号和长行自动换行在设置里。列表下方的详情区域始终显示所选条目的完整文本并自动换行,无论列表本身在做什么。