Log-it: 通过交互式、上下文相关、结构化和可视化日志支持编程
荣誉提名交互式数据可视化通知与中断管理软件工程师与开发者HCI 研究员
文献标题
Log-it: Supporting Programming with Interactive, Contextual, Structured, and Visual Logs
文献信息
- 主题领域: 人机交互、可视化编程辅助工具
- 关键词: 编程支持, 程序理解, 可视化, 日志, 调试, 程序可视化, 前端开发, Javascript
研究背景与问题
-
存在的问题或挑战:
- 程序员通常依赖日志(如
console.log)来了解和调试代码。然而当前日志一般采用线性文本的形式,缺乏结构和上下文信息,难以帮助程序员有效定位、综合和解释日志输出。 - 大量异构且无结构的日志输出使得控制台容易被“淹没”,难以追踪特定日志或变量变化。
- 程序员在查看日志时可能需要频繁切换视图(如源码、浏览器开发工具和控制台),导致理解日志语境时容易丢失信息。
- 为日志增加显著的组织性和语义,往往需要程序员增加额外时间和编码精力。
- 程序员通常依赖日志(如
-
重要性:
- 日志调试是一种应用广泛的编程方法,但当前日志机制难以满足开发复杂交互式或可视化系统的需求(如 Web 应用程序)。解决这些问题可以大幅降低程序员在日志调试过程中的认知负担,提高工作效率。
-
研究动机与相关工作:
- 现有研究分析了日志机制、定位日志语句以及日志代码最佳实践,但对实时日志的解释和日志输出上的语境增强研究较少。
- 尽管已有系统探索通过可视化或自动化提高日志效能,但是很多系统偏重后置分析(如日志挖掘)或二次开发工具,忽略了日志本身的灵活性和简单性。
解决方案
-
提出的方法或解决方案:
- 提出一种新型日志界面与工具——Log-it,将日志组织为“streams”(流),并结合交互性、上下文、结构化和可视化增强改进日志呈现方式。
- Log-it 提供了一种轻量化的替代方案,用于提升现有日志的种类和表达能力。
-
创新之处:
- 日志流(Stream)自动关联到代码的位置及上下文信息,包括作用域和结构的清晰展示。
- 提供多种交互工具,如属性高亮(Property Highlighting)、同步交互(Synchronized Interaction)、滑块式直观变量跟踪(In-Place Sliding)。
- 支持将日志以直观的动态图形、柱状图、可视化图形(如坐标矩形)形式嵌入开发场景中。
- 提供轻量化的整合方式,与现有开发流程无缝衔接。
-
实施步骤与关键技术:
- 日志流转化(Stream Conversion): 将相同语句的日志输出组织为一个“流”,每个流内日志表示可以动态交互。
- 对象交互: 用户可实时高亮复杂数据结构中感兴趣的部分,同时输出显示数据的变化同步更新。
- 源代码上下文嵌入: 通过日志颜色编码、源代码解释信息补充(如代码片段和作用域缩进),帮助程序员快速找到日志的上下文。
- 可视化表示: 支持柱状图、事件可视化以及图形嵌入日志流。
- 轻量整合: 通过 Node.js 等主流 JavaScript 工具实现模块化设计,具备低学习曲线。
研究成果
-
具体成果:
- 开发了开源工具 Log-it(可以通过 NPM 安装)。
- 针对 12 名程序员(包含初学者和专家)通过用户研究评估了 Log-it 的效用。
-
优势:
- 提高日志查找效率: 多个功能(如作用域缩进、拖动排序以及元素附件功能)帮助用户快速定位日志。
- 增强理解: 动态交互(如同步高亮、滑块追踪)使程序员易于理解不同日志间的关系。
- 强大的可视化支持: 特别适用于前端开发和交互式用户界面(UI)程序设计。
-
实验或评估结果:
- 无论是初学者还是专家,均认为 Log-it 操作简单、灵活,并在日志定位、综合和理解日志信息方面表现出色。
- Scope Indentation 和 In-Place Sliding 是用于处理复杂并发任务的明显改进。
- 可视化和元素级别的日志流附加增强了调试过程中的直观表现。
-
局限性与未来方向:
- 日志输出过多可能导致额外的混乱。未来可以结合智能过滤和日志自动丢弃机制。
- 针对特定领域的简化版本(如图形开发专用或逻辑分析专用前端)值得开发。
- 扩展至其他编程环境(如游戏开发、VR 或多线程程序开发)。
研究问题 / 现实痛点
这篇论文在当前问题库中对应的问题线索。
help
研究问题
3- 如何通过交互性、上下文、结构化和可视化的日志改进编程调试效率?分类: 编程助手与多轮代码支持同类问题arrow_forward
- 日志流能否帮助程序员更快速定位并理解复杂的日志输出?分类: 编程助手与多轮代码支持同类问题arrow_forward
- 如何在不增加程序员负担的情况下,将日志集成到开发环境中以支持实时交互和可视化?分类: 编程助手与多轮代码支持同类问题arrow_forward
lightbulb
现实痛点
1- 程序员调试时难以快速定位和理解无结构的日志输出。分类: 编程助手与多轮代码支持同类问题arrow_forward
- 60%
大规模可视化API使用示例
CHI '18· 交互式数据可视化 +1
- 60%
指向你周围的所有地方:全覆盖显示器中鼠标和光线投射指向的选择性能
CHI '18· 知识工作者工具与工作流 +1
- 60%
T-Cal:基于日历的可视化理解团队对话数据
CHI '18· 交互式数据可视化 +1
- 60%
触摸屏移动设备上网格性能的分析与建模
CHI '18· 眼动追踪与注视交互 +1
- 60%
通过原位可视化增强代码以帮助程序理解
CHI '18· 交互式数据可视化 +1
- 60%
电子邮件让你出汗:使用热成像检查电子邮件中断和压力
CHI '19· 通知与中断管理 +1
- 60%
变色龙:为静态数字文档带来交互性
CHI '20· 交互式数据可视化 +1
- 60%
当账单到期时:使用标签的成本结构挑战
CHI '21· 知识工作者工具与工作流 +1
- 60%
通过数字“现场”观察理解视觉调查模式
CHI '22· 交互式数据可视化 +1
- 60%
ReLive:连接现场和离场视觉分析以分析混合现实用户研究
CHI '22· 混合现实工作空间 +1
基于研究子主题与职业分类的 Jaccard 相似度(≥60%)
快捷操作
广告推荐
学习 AI 编程到 CodeNow
open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3544548.3581403
一眼看懂
fact_check论文快照
dataset
来源
CHI
calendar_month
年份
2023
emoji_events
奖项
荣誉提名
group
作者
3 位作者
sell
研究子方向
交互式数据可视化、通知与中断管理
work
职业/产业
软件工程师与开发者、HCI 研究员
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文