Các tệp nhật ký là một phần quan trọng của bất kỳ ứng dụng nghiêm trọng nào: nếu việc đăng nhập trong ứng dụng là tốt, thì chúng sẽ cho bạn biết những sự kiện quan trọng nào đã xảy ra và khi nào; những lỗi đã xảy ra; và sức khỏe ứng dụng chung vượt xa mọi hoạt động giám sát đã được thiết kế. Người ta thường nghe về một vấn đề, kiểm tra chẩn đoán tích hợp của ứng dụng (bật bảng điều khiển web của nó hoặc sử dụng công cụ chẩn đoán như JMX), sau đó dùng đến để kiểm tra nhật ký tập tin.
Nếu bạn sử dụng định dạng phi văn bản, thì ngay lập tức bạn sẽ gặp phải một trở ngại: làm thế nào để bạn đọc nhật ký nhị phân? Với công cụ đọc nhật ký, không có trên các máy chủ sản xuất của bạn! Hoặc là vậy, nhưng trời ơi, chúng tôi đã thêm một lĩnh vực mới và đây là độc giả cũ. Chúng tôi đã không kiểm tra điều này? Có, nhưng không ai triển khai nó ở đây. Trong khi đó, màn hình của bạn đang bắt đầu sáng lên với những người dùng ping bạn.
Hoặc có lẽ đây không phải là ứng dụng của bạn, nhưng bạn đang hỗ trợ và bạn nghĩ rằng bạn biết đây là hệ thống khác và WTF? các bản ghi ở định dạng nhị phân? Ok, bắt đầu đọc các trang wiki, và bạn bắt đầu từ đâu? Bây giờ tôi đã sao chép chúng qua máy cục bộ của mình, nhưng - chúng bị hỏng? Tôi đã thực hiện một số loại chuyển giao không nhị phân? Hoặc là công cụ đọc nhật ký bị rối?
Nói tóm lại, các công cụ đọc văn bản là đa nền tảng và có mặt khắp nơi, và nhật ký thường tồn tại lâu dài và đôi khi cần phải đọc vội vàng . Nếu bạn phát minh ra một định dạng nhị phân, thì bạn sẽ bị cắt khỏi cả một thế giới các công cụ dễ hiểu và dễ sử dụng. Mất nghiêm trọng chức năng chỉ khi bạn cần nó.
Hầu hết các môi trường ghi nhật ký đều thỏa hiệp: giữ cho các bản ghi hiện tại có thể đọc và hiện tại, và nén các bản ghi cũ hơn. Điều đó có nghĩa là bạn có được lợi ích của việc nén - trên thực tế, vì định dạng nhị phân sẽ không thu hẹp các thông điệp tường trình. Đồng thời, bạn có thể sử dụng ít hơn và grep và như vậy.
Vì vậy, những lợi ích có thể có thể phát sinh từ việc sử dụng nhị phân? Một lượng nhỏ hiệu quả không gian - ngày càng không quan trọng. Ít hơn (hoặc nhỏ hơn) viết? Chà, có lẽ - thực ra, số lần ghi sẽ liên quan đến số lần xác nhận đĩa, do đó, nếu các dòng nhật ký nhỏ hơn đáng kể so với kích thước khối của đĩa, thì SSD sẽ được gán các khối mới nhiều lần. Vì vậy, nhị phân là một lựa chọn thích hợp nếu:
- bạn đang viết một lượng lớn dữ liệu có cấu trúc
- các bản ghi phải được tạo ra đặc biệt nhanh chóng
- bạn không cần phải phân tích chúng trong "điều kiện hỗ trợ"
nhưng điều này nghe có vẻ ít giống như đăng nhập ứng dụng; đây là các tập tin đầu ra hoặc hồ sơ hoạt động. Đặt chúng vào một tệp có lẽ chỉ còn một bước nữa là ghi chúng vào cơ sở dữ liệu.
BIÊN TẬP
Tôi nghĩ rằng có một sự nhầm lẫn chung ở đây giữa "nhật ký chương trình" (theo khung ghi nhật ký) so với "bản ghi" (như trong nhật ký truy cập, hồ sơ đăng nhập, v.v.). Tôi nghi ngờ câu hỏi liên quan chặt chẽ nhất đến câu hỏi sau, và trong trường hợp đó, vấn đề ít được xác định rõ hơn. Hoàn toàn có thể chấp nhận được đối với bản ghi thông báo hoặc nhật ký hoạt động ở định dạng nhỏ gọn, đặc biệt là nó có thể được xác định rõ và được sử dụng để phân tích thay vì xử lý sự cố. Các công cụ thực hiện việc này bao gồm tcpdump
và trình giám sát hệ thống Unix sar
. Mặt khác, nhật ký chương trình có xu hướng đặc biệt hơn nhiều.