Ghi nhật ký JSON cung cấp cho bạn khả năng phân tích tệp nhật ký theo chương trình ngay cả khi định dạng đã thay đổi theo thời gian .
Một ví dụ điển hình là nhật ký Apache. Theo mặc định, Apache sử dụng common
định dạng cho access.log:
"%h %l %u %t \"%r\" %>s %b"
Giả sử bạn đã xây dựng một trình phân tích cú pháp ngoại tuyến, lấy một trong các tệp nhật ký đó và tính toán một số thống kê từ nó.
Tại một số thời điểm, bạn giới thiệu tên miền phụ cho ứng dụng của mình và bao gồm virtual_host
vào nhật ký của bạn (để bạn có thể gỡ lỗi nếu có vấn đề xuất hiện với một trong các tên miền phụ):
"%v %h %l %u %t \"%r\" %>s %b"
Trình phân tích cú pháp của bạn không sử dụng virtual_hosts
, nhưng bạn vẫn cần điều chỉnh trình phân tích cú pháp của mình để:
- chấp nhận định dạng nhật ký mới (chú ý
%v
ở đầu định dạng nhật ký)
- vẫn hỗ trợ định dạng nhật ký cũ (đối với các tệp nhật ký cũ hơn)
Nhưng nếu bạn đăng nhập JSON , trình phân tích cú pháp của bạn thậm chí sẽ không nhận thấy trường được thêm vào và có thể vui vẻ phân tích các bản ghi mới cũng như các bản ghi cũ. Và một số trình phân tích cú pháp khác có thể sử dụng các trường được thêm vào nếu chúng tồn tại .
Và tất nhiên đối với bạn , phân tích cú pháp JSON dễ hơn viết regexps
để phân tích các bản ghi chuỗi.