Send all your logs into a black hole -- then pull them out again!
Source: https://antithesis.com/blog/2026/retrologging. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Bài viết giải thích ra đời của slog.Handler.WithAttrs trong Go 1.21 như một cách thêm thuộc tính có phạm vi vào logger mà không thay đổi handler gốc. Nguyên nhân kỹ thuật là WithAttrs trả về một handler mới sao chép các thuộc tính hiện tại và gộp thêm các attr.Attr được truyền vào, giữ nguyên tính không thay đổi của handler gốc. Hệ quả là các đoạn code có thể tạo logger có context (request‑ID, user‑ID) cho mỗi goroutine mà không cần khóa hoặc tạo bản sao toàn bộ logger, giảm thiểu việc cấp phát và tránh xung đột trong môi trường đồng thời. Bài cũng chỉ ra rằng việc sử dụng WithAttrs giúp giảm số lần gọi slog.With lên tới 40% trong các benchmark khi ghi log nhiều trường tĩnh, nhờ việc lưu trữ thuộc tính trong handler thay vì tạo mới mỗi lần log. Điều đáng học là khi cần thêm thông tin bối cảnh cho log, ưu tiên sử dụng handler.WithAttrs để tạo logger có phạm vi, giữ handler gốc không thay đổi và tận dụng khả năng tái sử dụng của thuộc tính đã được pre‑allocated.
Đang tải bình luận…
Bối cảnh của bài viết là việc triển khai logging trong các dự án Go sử dụng package slog của chuẩn Golang. Nguyên nhân kỹ thuật được phân tích là việc cấu hình sai HandlerOptions có thể dẫn đến performance kém và lỗi không mong muốn. Hệ quả cụ thể là một ứng dụng Go xử lý 50,000 requests mỗi giây có thể bị chậm lại đến 30% khi cấu hình logging không tối ưu. Điều đáng học là việc hiểu rõ và sử dụng đúng các tham số như Level, AddSource, ReplaceAttr trong slog.HandlerOptions có thể cải thiện đáng kể hiệu năng logging mà không cần thay đổi thư viện.
slog.HandlerOptions cung cấp cách tối ưu hóa hiệu năng logging trong Go.
Bài viết chỉ ra vấn đề khi logic định giá bị phân tán ở nhiều nơi (frontend, backend, job xử lý hóa đơn) dẫn đến sự không nhất quán, khó truy vết khi xảy ra tranh chấp. Nó nhấn mạnh rằng backend cần là nơi duy nhất quản lý logic định giá để đảm bảo tính thống nhất và minh bạch.
Một lập trình viên nên đọc bài này để tránh rắc rối khi các quy tắc tính giá phân tán trên frontend, backend và các dịch vụ phụ gây ra lỗi nhỏ nhưng khó debug và dẫn đến tranh chấp khách hàng khi tính toán không nhất quán.
Bài viết giới thiệu về gói slog trong thư viện chuẩn Go, tập trung vào logger toàn cục (global logger) mặc định. Các hàm cấp cao như slog.Info, slog.Debug thực chất là các bí danh (alias) của phương thức trên logger toàn cục. Mặc dù slog.SetDefault cho phép thay thế logger toàn cục và cập nhật luôn logger của gói log cũ, tác giả khuyên không nên phụ thuộc vào logger toàn cục vì bất kỳ thư viện nhập khẩu nào cũng có thể thay đổi nó, gây ra các tác dụng phụ ảnh hưởng đến kiểm thử và kiến trúc.
Lập trình viên nên đọc bài này để tránh rủi ro khi sử dụng logger toàn cầu trong Go, vì nó có thể bị thay đổi bất ngờ bởi các thư viện khác, gây ra các vấn đề về tính ổn định và khó kiểm soát trong dự án.
Bối cảnh là việc xử lý log hiệu quả trong các ứng dụng lớn gặp thách thức với lượng dữ liệu khổng lồ. Nguyên nhân kỹ thuật nằm ở việc cơ chế logging mặc định của Go (slog) không có built-in solution cho việc discard log entries, buộc developer phải tự implement. Hệ quả là performance bị ảnh hưởng khi hệ thống phải xử lý log không cần thiết. Điều đáng học là bài viết giới thiệu slog.DiscardHandler - một custom handler giúp loại bỏ log entries dựa trên level, cải thiện đáng kể hiệu suất với con số benchmark lên đến 40% reduction in memory usage. Giải pháp này đặc biệt hữu ích khi bạn cần chạy ứng dụng ở production mode với verbose logging nhưng chỉ muốn giữ lại các log quan trọng.
Log discard handler giúp bạn quản lý log hiệu quả hơn bằng cách loại bỏ log không cần thiết.
Unified Logs của Supabase đã ra mắt phiên bản beta công khai, cung cấp giao diện thống nhất để tìm kiếm, theo dõi trực tiếp (live tail), lọc và hiển thị nhật ký theo dòng thời gian cho tất cả dịch vụ của nền tảng.
Lập trình viên nên đọc bài này để khám phá cách Unified Logs của Supabase giúp họ quản lý và theo dõi các hoạt động hệ thống một cách hiệu quả hơn, tiết kiệm thời gian và công sức trong việc debug và giám sát ứng dụng.
Một nhà phát triển tên Gretchen gia nhập dự án Node.js cũ kỹ sau khi bị mua lại và phát hiện hàng loạt lỗi nghiêm trọng: logging bị hỏng chỉ in ra "DEBUG", lỗ hổng SQL injection từ truy vấn thô, thiếu middleware phân quyền trên hầu hết endpoints (kể cả API admin), codebase dừng ở Node.js 14, và dữ liệu request được đưa trực tiếp vào database mà không qua bất kỳ validation nào.
Lập trình viên nên đọc bài này để tránh rơi vào những sai lầm an toàn và thiết kế không hiệu quả trong dự án Node.js, từ đó học cách cải thiện bảo mật, quản lý lỗi và tối ưu hóa hệ thống ngay từ giai đoạn đầu.
Bối cảnh: bài viết trên Boldlygo.tech đề cập đến vấn đề logging hiệu quả trong Go, cụ thể là sử dụng slog.Handler.WithGroup. Nguyên nhân kỹ thuật: phương thức này giúp phân nhóm các log entries thành cấu trúc phân cấp, giảm thiểu việc duplicate khi có nhiều handler cùng xử lý log. Hệ quả: việc implement WithGroup giúp tối ưu hóa hiệu suất logging trong các ứng dụng Go phức tạp, giảm thiểu resource usage. Điều đáng học: các lập trình viên Go có thể học cách thiết kế hệ thống logging có cấu trúc phân cấp, đặc biệt hữu ích khi làm việc với các distributed system cần tracing nhiều tầng.
Bài viết này giúp lập trình viên hiểu cách sử dụng slog.Handler.WithGroup để quản lý log hiệu quả hơn trong Go.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it