LogWizard - 聊聊您的日志!






3.67/5 (2投票s)
以前所未有的方式创建和共享关于您日志的笔记!
引言
分析日志通常很麻烦。它会让你脱离编码,迫使你浏览数十万行日志,找出导致客户(远在千里之外)出现那个恼人错误的根本原因。
深入研究日志并非易事。要弄清问题的根源,有时需要团队协作。你需要一个工具,允许多个人针对特定的日志进行批注和回复。隆重推出 LogWizard —— 这就是它的一个功能!
背景
我创建 LogWizard 是为了帮助那些真正需要分析日志以追踪错误和/或发生在别处(例如客户机上)的问题的人。
我已经在 另一篇文章 中介绍了如何使用它,并且更多文章即将推出。本文重点介绍 Notes
。
正如你将看到的,编写和回复笔记非常容易。我特意设计成这样,因为除非它非常简单,否则你不会使用它——如果它不简单,我 selber也不会使用!
场景
- 仅供自己使用的笔记 - 你可以仅供自己使用。也许你在分多次“会话”来分析一个非常复杂的日志——你可能需要在几天后回来,并从上次中断的地方继续。
- 与同事共享 - 你和你的同事都可以创建笔记。你可以回复你同事的现有笔记,和/或删除笔记。
- 与客户支持共享 - 你可以让客户支持人员先查看日志,然后他们可以将他们的发现与你和团队共享。这将为你节省处理常见问题的细节——这些问题他们应该能够识别。或者,至少,他们可以与你分享他们对问题的看法。
- 与客户共享 - 你可以与客户共享你的发现。例如,假设 AERO 必须开启才能使你的程序正常运行,但从你的日志中可以清楚地看出,你的客户并非如此。只需在你指定的 AERO 关闭的行上添加一条笔记,例如“请开启 AERO 以便 XYZ 正常工作”。
正确地与客户共享信息可以非常有力量。你可以通过两种方式进行:
- 仅导出笔记。它们将被导出为漂亮的 .html 文件。
- 导出笔记和日志。他们将能够看到与你看到的完全一样的日志,以及笔记。在与客户保持透明方面,这说明了很多问题。你可能很少需要这样做——因为会有很多客户不感兴趣的信息。但是,如果他们要求,为什么不呢?
入门
如果你想随意试用一下,我提供了一些示例日志。你可以在 %appdata%\LogWizard\Samples
中找到它们。你可以将其中一个拖到 LogWizard 上,显示 Notes Pane (Alt-N),然后随意添加/编辑笔记。
注释
在我继续之前:LogWizard 的核心是 View
。一个 View 由多个过滤器组成,允许你一次专注于一个特定问题。
你所做的每一条 Note
都与特定 View 中的一行相关。或者,它是对现有 Note 的回复。
回复会得到很好的格式化,这样你就可以直观地看到谁在回复什么。
创建笔记非常简单
1.
导航到要添加笔记的行。2a.
要么右键单击该行,选择Note >> Create Note On This Line
,要么2b.
确保 Notes Pane 已打开(如果未打开,请使用Alt-N
打开)。按Tab
直到到达左下角的编辑框。根据你可见的页面,这可能需要按一到两次 Tab 键。3.
输入你的笔记,然后按Enter
。就是这样!
当你浏览日志时,你会发现 Notes Pane 与你当前的行和视图同步。
在你创建笔记后,你会发现在 Line 列会显示你的作者首字母。默认情况下,我通过查看你的 Windows 用户名来查找作者姓名+首字母(用于标识你在笔记中的身份)。如果你想更改它们,只需转到 Preferences (Ctrl-P
),Notes 选项卡,然后根据需要进行更改。
分享你的日志
所以,你已经创建了几条笔记。耶!现在你想与他人共享(例如,通过电子邮件发送给你的同事),请单击底部的 Export
。选择 Export Log + Notes (to .LogWizard file)
。
LogWizard 会创建两个文件,一个以 .long.LogWizard
结尾,一个以 .short.LogWizard
结尾,并自动在 Windows 资源管理器中打开它们。选中了 .long.LogWizard
文件。
.long
文件包含日志 + 你创建的笔记,而.short
文件仅包含笔记。
当你与同事之间共享日志和笔记时,你只需要与某人共享一次 .long
文件——当他们打开它时,他们将在本地拥有日志文件。
之后,你只需要共享 .short
文件,其中包含你最新的笔记——当有人打开它时,它会自动合并笔记。
合并工作流
如上所示,第一个评论日志的人将创建一个 .long.LogWizard
文件。假设那个人是你,然后你将它与团队的其余成员共享。
在你共享 .long.LogWizard
文件时,你是否创建了任何笔记并不重要。你之前和之后创建的所有笔记都会自动与你的同事合并。
任何想查看日志的人都会双击 .long.LogWizard
文件——这会打开日志(使用 LogWizard),连同你的初始笔记(如果有),他们就可以开始创建笔记了。
一旦你创建了有意义的笔记,你想与同事共享它们。因此,你单击 Export
,选择 Export Log + Notes...
,选择 .short.LogWizard
文件,然后共享它(通过电子邮件,或你选择的其他共享工具)。你的同事也会这样做。
要查看你同事创建的笔记,请打开他们发送给你的 .short.LogWizard
文件。就是这样——合并是自动完成的。如果有什么新的内容,Notes Pane 会自动打开,新行会以较深的背景色显示。
删除笔记
如果你意识到某个笔记没有用(或者已被另一个笔记取代),你可以随时删除它。这将减少混乱——其理念是始终能够专注于重要的事情。如果你看到某人的笔记不再相关,你可以
- 回复该笔记,解释为什么该笔记不再相关。
- 除此以外,你还可以删除原始笔记(这将删除你的笔记——但没关系,请参阅下文)。
要删除笔记,只需选择该笔记(在左上角的窗格中),然后按 DEL
。
删除笔记实际上并不会真正删除它。我想创建一个简单的共享信息的方法,而就笔记而言,你需要记住的是,你不会在日志中需要很多笔记。也许如果这是一个非常困难的日志,你可能需要输入 150-200 条笔记。这在存储方面算不了什么。
因此,我从不真正删除笔记。这带来了另一个非常重要的副作用。**无需** Undo
。你不小心删除了一个笔记?不用担心——只需勾选 Show Del Notes
,重新选择它,然后再次单击 DEL
——它就会被恢复。
在删除笔记方面,任何人都可以删除任何东西:这取决于你对同事的信任——没有人会无缘无故地删除某样东西。
导出笔记给客户
当你和你的同事分析完日志后,你可以将笔记传递给你的客户支持。如果是 Bug,你和你的同事将决定何时/是否修复它。如果是在客户机上的配置错误问题,客户支持可以选择导出这些笔记,并最终提供更多详细信息。
导出笔记非常强大——客户实际上可以看到导致你们评论的原始行——如果他们真的想,他们可以与他们发送给你的原始日志进行核对。
要注意的一件非常重要的事情是,导出会考虑 Show Del Lines
的值——如果勾选了它,则已删除的行也会被导出。如果你正在为客户导出,你可能会想取消勾选它。
此外,客户支持可以检查每条评论的语言——因此,在说话时要注意你的语言。它可能会到达客户那里!客户支持可以进一步删除某些行,最后,将它们作为漂亮的 .html 文件发送给客户。
客户支持
当出现问题/Bug 时,客户会将日志发送给客户支持。他们可以将日志转发给你,或者在 Jira(或类似工具)中创建一个 Bug,附加日志,然后将 Bug 的链接转发给你。
你也可以训练他们查看日志,并发现
- 常见场景
- 非同寻常的场景
对于常见场景,他们甚至可以自己解决,而无需打扰你。发现非同寻常的场景需要经验。一旦客户支持查看了足够多的日志,他们就会本能地发现一些非同寻常的事情(并通过在他们认为可疑的行上创建一些笔记来告知你)。即使他们猜错了,那也没关系——你只需要让他们知道,他们认为非同寻常的问题实际上并非如此。
在分析完日志后,你还可以与客户支持共享你的发现(即笔记)。如果这是客户机上的配置错误问题,他们就可以从中学习(在日志中的什么位置),以后在其他客户身上发现相同的问题。
培训客户支持不必很难。你只需要让他们在查看日志文件时更容易找到常见场景。这意味着 创建 View 来专门为他们量身定制。你可以创建一个包含大多数常见场景的 View——他们会查看它,看看是否能发现什么。例如,最简单的 View 就是一个包含 Warnings、Errors、Fatal Errors 的 View,大致如下:
你的视图与同事的视图(进阶)
正如我之前所说,LogWizard 的核心是 View 的概念——它是一系列过滤器的集合。创建 Views 超出了本文的范围——只需 阅读本文 以获取更多详细信息。
在查看日志时,你和你的同事可以对其有不同的 View:你可以创建自己的 View——专注于当前对你重要的内容,他们也可以创建自己的 View——专注于他们的任务。
只需记住,每条笔记都与一行和一个 View
相关。如果你没有某人创建笔记的 View,LogWizard 会自动打开 Full Log
窗格(显示完整的日志,没有任何过滤器)并选择该行。
大多数情况下,你会希望你的 Views 与你的同事保持同步(或者至少,是常用的 View)。有几种方法可以实现这一点:
让团队中的某个人创建所有 View,然后与团队其余成员共享。
- 打开你应用程序的任何日志。
- 创建 Views。 阅读本文
- 共享模板(见下文)。
你可以轻松地共享 Views 和/或 Templates(Template 是日志所有 Views 的集合)。
要共享 Template
:
- 打开 Source Pane (
Alt-O
)。 - 单击
ToC
。这将把 Template 复制到剪贴板。 - 你可以将剪贴板的内容发送给其他人。
要使用他人共享的 Template
:
- 你需要将其复制到剪贴板。
- 打开 Source Pane (
Alt-O
)。 - 选择要复制到的 Template(或简单创建一个新的 Template)。
- 单击
FromC
。这将从剪贴板粘贴 Template。
要共享 View
:
- 选择相应的选项卡。
- 打开 Filters Pane (
Alt-F
)。 - 单击
ToC
。这将把 View 复制到剪贴板。 - 你可以将剪贴板的内容发送给其他人。
要使用他人共享的 View
:
- 你需要将其复制到剪贴板。
- 选择要复制到的 View(或简单创建一个新的 View)。
- 打开 Filters Pane (
Alt-F
)。 - 单击
From
。这将从剪贴板粘贴 View。
一旦你拥有日志的正确 Template,你就可以进一步调整它——修改 Views 和/或创建新的 Views 来匹配你当前正在处理的内容。这完全没问题——如果 LogWizard 找不到某个笔记的 View,它只会打开 Full Log
窗格并向你显示该笔记所在的行。
默认情况下,当你打开一个 .LogWizard
文件时,LogWizard 会查找与该日志对应的 Template
。
- 如果它在本地找到它,它就会使用它。因此,默认情况下,它总是使用你的 Template。
- 如果它找不到,它将使用
.LogWizard
文件中的那个。每次你导出到.LogWizard
文件时,我们也会导出你的 Template。这样,任何打开.LogWizard
文件的人都会看到导出者 Template(包含所有 Views)。
万一你有一个与该日志对应的 Template,但想查看导出笔记的同事的 Template,请在拖放 .LogWizard
文件时按住 SHIFT
键。
唯一标识日志(进阶)
当你打开一个 .LogWizard
文件时,我需要找出它关联的日志以及你是否已经本地拥有它。后者不太重要,因为我可以重新复制日志到本地。
然而,唯一标识日志的原因是为了能够自动合并你的笔记(如果有)与你正在打开的 .LogWizard
文件中的笔记。
我有两种方法可以唯一标识日志文件:
快速
:读取文件开头 16KB + 文件末尾 16KB + 包括文件大小,然后生成 md5 哈希。100% 准确
:生成整个文件的 md5 哈希。
快速算法通常就能满足你的需求,但以防万一你确实需要绝对准确,请使用另一种方法(这当然慢得多,特别是对于大型日志)。要进行编辑,请转到 Preferences (Ctrl-P
),Notes 选项卡,然后进行更改。
历史
- 2015年10月14日 - 初始版本