newsence
來源篩選

Log messages are mostly for the people operating your software

Hacker News

The author explains that due to a surge in LLM training crawlers using outdated browser identities, strict anti-crawler measures have been implemented that may inadvertently block legitimate users with old browsers.

newsence

日誌訊息主要是給操作軟體的人看的

Hacker News
5 天前

AI 生成摘要

由於近期出現大量用於大型語言模型訓練的爬蟲,這些爬蟲常偽裝成舊版瀏覽器,因此我正在實驗性地封鎖這些請求,如果您因此無法存取我的網誌,請與我聯繫並提供您的瀏覽器資訊。

背景

這場討論源於一篇探討日誌(Logs)設計哲學的文章,核心觀點主張軟體日誌的主要受眾應是「操作軟體的人」而非「開發軟體的人」。隨著軟體規模擴大,運行系統的維運人員或終端用戶往往並非程式碼的撰寫者,因此日誌的內容應更具備可操作性,而非僅僅是開發者視角的內部狀態紀錄。

社群觀點

在 Hacker News 的討論中,社群對於「誰才是日誌的真正受眾」存在明顯的分歧。支持者認為,開發者與維運人員(Sysadmins)對日誌的需求本質上完全不同。維運人員需要的是明確的行動指引,例如系統是否缺少某個檔案、網路連接為何失敗,以及是否有具體的補救措施;然而開發者往往更關注程式內部的邏輯流轉與變數狀態。許多資深維運人員抱怨,開發者常因懶惰或過度擔心資訊洩露,而給出模糊的錯誤訊息,迫使維運端必須動用 strace 或 Wireshark 等工具進行逆向診斷,這極大地增加了維護成本。

然而,另一派觀點則質疑一般用戶是否真的會閱讀日誌。反對者指出,大多數終端用戶連基本的錯誤提示框都不會仔細閱讀,更遑論深藏在系統中的日誌文件。對於這類受眾,日誌的價值在於提供一個可供搜尋的「錯誤代碼」或關鍵字,讓用戶能透過搜尋引擎找到社群解決方案,或是讓技術支援人員有據可依。此外,隨著人工智慧的興起,有留言者提出了一個新穎的觀點:未來的日誌受眾可能是 AI Agent。當 AI 負責診斷系統時,日誌不再需要為了人類的閱讀習慣而刻意精簡,反而應該提供更詳盡、結構化的原始數據,讓 AI 能更精準地定位問題根源。

討論中也觸及了不同軟體類型的差異。在伺服器端軟體中,日誌作為維運工具的屬性非常強烈;但在行動裝置或桌面應用中,日誌往往更傾向於開發者導向,用於收集崩潰報告。有開發者分享了在 Android 開發中的經驗,他們致力於讓日誌變得易於收集與分享,甚至觀察到用戶會主動將日誌餵給大型語言模型(LLM)來尋求自我診斷。這種「日誌即決策依據」的轉變,顯示出日誌的功能正從單純的事件紀錄,演變成一種主動的溝通媒介。

最後,部分技術專家強調了「活體程式」(Alive Programs)的概念,特別是在 JavaScript 與 Node.js 環境下,透過 Chrome DevTools Protocol 等工具,操作者可以直接介入運行中的系統進行調試,而不僅僅是依賴靜態的日誌檔案。這種即時互動的能力,模糊了開發與維運的界線,也為日誌的未來形態提供了另一種思考方向:日誌不應只是死板的文字,而應是系統可觀察性的一環。

延伸閱讀

  • Logging Code Smell: 探討過度日誌化為何是一種程式碼異味,以及如何透過事件框架優化。
  • Stop Writing Dead Programs: Jack Rusher 關於建立更具互動性、更易於觀察之系統的演講。
  • Chrome DevTools Protocol (CDP): 現代瀏覽器與 Node.js 提供的強大調試協議,可實現非侵入式的即時監控。