日志記錄了代碼的執行過程,根據目的不同,可以分為系統日志和操作日志。本文作者對操作日志進行了介紹,分析如何用五個步驟設計出用戶操作日志,一起來看一下吧。
一、什麼是日志
日志記錄了代碼的執行過程。根據目的不同,可分為系統日志和操作日志。
1)系統日志
記錄系統中硬件、軟件和系統問題的信息,同時還可以監視系統中發生的事件。開發人員可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕迹。系統日志包括系統日志、應用程序日志和安全日志。由于系統日志主要是為開發人員排查問題提供依據的,因此可讀性沒那麼高。
2)操作日志
記錄所有用戶在系統中的操作過程和操作結果,如登錄記錄、修改記錄等。操作日志主要是為用戶服務,幫助他們查看曆史操作記錄,因此對可讀性要求較高。
二、什麼是操作日志
具體而言就是記錄“誰在什麼時間、什麼位置,對什麼東西做了什麼操作,從而産生了哪些變動”,因此一個完備的操作日志應包含以下信息:
- 用戶(操作人及賬号):誰執行了該操作
- 操作時間:什麼時間執行了該操作
- 操作位置(業務菜單):在哪個模塊上執行了該操作,如用戶管理、訂單管理等
- 操作對象:對哪個對象執行了該操作,如某道題、某份試卷
- 操作類型:具體執行了哪個操作,如登錄、浏覽、新增、删除等
- 變動值:在執行該操作後産生了哪些變化,主要針對于“編輯”類型的操作,如将題目難度由【難度一】修改為【難度二】
除了以上内容,還可根據業務場景補充記錄其他字段:
- 操作頁面:記錄執行操作時調用的接口,如/crowd/system/user/list,當出現異常時,便于技術人員快速定位問題
- 登錄IP:記錄用戶在何地執行的操作,如125.71.135.54四川省成都市武侯區電信
- 設備信息:記錄用戶通過哪種設備執行的操作,如Chrome101、Windows7、PC
- 業務相關字段:為了滿足業務需要而記錄的字段,如下圖所示
拓展1:以上默認隻記錄操作成功的日志,如果業務需要,還可以增加“操作狀态”字段來記錄操作失敗的日志,同時記錄失敗原因。
拓展2:若多個項目均要記錄用戶的操作,不需要為每個項目單獨開發一套操作日志功能,而應該設計一個用戶操作日志的公共組件(本文隻讨論為單一項目設計用戶操作日志,組件的設計不在本文讨論範圍内,不過設計組件時仍需先理清各項目的用戶操作日志,再同開發讨論如何抽離)。
三、五步設計用戶操作日志1. 梳理操作列表
梳理操作列表就是羅列出用戶的哪些操作要在用戶操作日志中記錄。具體的方法是:在功能列表的基礎上,根據業務需要篩選出要記錄的功能。
如上圖所示,左邊是産品的功能列表,經過産品經理的調研和分析,認為本項目的用戶操作日志中不需要記錄查看及查詢操作,并且也不需要記錄公告管理中的所有操作,因此制作了右邊的操作列表。
2. 梳理記錄字段
在本步驟中需要産品經理明确針對每個操作要記錄的字段有哪些。至少應包括用戶、操作時間、操作位置、操作對象和操作類型,再根據業務的需要增加變動值、IP地址、設備信息、操作頁面等其他字段。
3. 填充具體規則
搭建好操作列表和記錄字段的框架後,接下來就是往裡面填充具體的規則了,即如何将操作日志以通俗易懂的方式展現出來。
如上圖所示:添加、删除、停用等操作由于隻涉及一個對象的一個狀态,所以處理起來比較簡單,如[2022-10-10 19:10:26][小王1816121315]在[學院管理]中[添加]了[學院一(002)];
批量操作可以被看成是多次對單個對象進行操作,也隻涉及一個狀态,如[2022-10-10 19:10:26][小王1816121315]在[學院管理]中[添加]了[學院一(002)、學院二(003)、學院三(004)];
最複雜的是對編輯操作的處理,因為涉及到兩個狀态,即編輯前和編輯後,下文會以“編輯”操作為例介紹如何記錄兩個狀态的操作内容。
注:需要根據業務需求決定日志記錄的顆粒度,可隻記錄到操作類型,也可記錄到每次操作的詳細内容。
1)有限值
針對有限内容(如下拉框、多選框、複選框等)可直接記錄前後變化,如題目難度:将[難度一]修改為[難度二]。
2)短文本
由于文本内容較短,也可以直接記錄編輯前和編輯後的内容,如學院名稱:将[學院一]修改為[學院二]。
3)長文本
由于文字較多,若像短文本那樣将全部内容都展示出來,則不利于用戶看出變化。這時就可先按“行”梳理長文本内容,編輯後隻給用戶展示出變動行的内容,如下圖所示,可以很清晰地看出用戶删除了第285-294行,新增了289-298行。
4)圖片和音視頻
圖片和音視頻是以地址的形式存儲的,因此也應該以地址的形式進行記錄,如附件:将[https://cos.1.png]修改為[https://cos.2.png]。
5)複雜内容
編輯一個閱讀理解題目,可以同時包含有限值、短文本、長文本、圖片和音視頻,并且選項和子題的個數也不可控,如果按上述方案對每種數據分開記錄,會十分繁瑣,也不利于用戶閱讀。因此對于複雜内容,需要整體保存,并支持查看編輯前和編輯後的記錄(類似于曆史版本)。
4. 補充其他附屬功能
除上述的主要規則外,關于用戶操作日志還可根據需要設計其他附屬功能,包括:
1)查詢篩選
為了便于用戶查找,應針對操作字段提供查詢和篩選功能,如按用戶信息進行模糊搜索、按操作時間段進行查詢、按業務菜單和操作類型(篩選時要合并類型,如“新增學生”和“新增老師”,都屬于“新增”類型)進行篩選等。
2)分頁
分頁展示數據,并且可以設置每頁顯示條數。
3)排序
按操作時間正序或倒序排列。
4)自定義顯示列字段
若一次顯示的字段太多,可由用戶自定義選擇。
5)下載
能夠根據條件下載用戶操作日志。
6)自動清理
用戶操作日志更新頻繁,長時間會積累大量數據,占據存儲空間,并且操作日志具有時效性,過早的日志沒有查詢價值,因此可通過存儲天數或存儲條數的限制自動清理無用日志。
5. 完善原型和PRD
根據前面的分析結果完成産品原型和産品需求文檔的設計。
至此五個步驟已全部介紹完成。
本文由 @産品亂彈 原創發布于人人都是産品經理,未經作者許可,禁止轉載
題圖來自 unsplash,基于 CC0 協議
該文觀點僅代表作者本人,人人都是産品經理平台僅提供信息存儲空間服務。
,