Computer >> Máy Tính >  >> Lập trình >> Ruby

Cách sử dụng Nhật ký trong Ruby để theo dõi sự kiện và thông báo lỗi

Ghi nhật ký là quá trình lưu thông tin về những gì ứng dụng Ruby của bạn đang làm.

Nó rất hữu ích, cả trong môi trường phát triển và sản xuất.

Tại sao?

Vì mục đích của việc ghi nhật ký là thu thập thông tin về những gì đã xảy ra, những gì đã xảy ra và những gì đã đúng.

Tất cả các loại thông tin có thể được ghi lại :

  • Các truy vấn SQL chậm (để bạn có thể tìm và sửa chúng)
  • Thông báo lỗi
  • Thông tin yêu cầu chi tiết (URL, Bộ điều khiển, Tham số, Chế độ xem…)

Với thông tin này, bạn có thể chẩn đoán và tìm ra nguồn gốc của sự cố trong ứng dụng của mình nhanh hơn.

Trong ứng dụng Rails, nhật ký được lưu trữ trong /log thư mục.

Trong chế độ phát triển, development.log tệp được sử dụng và bạn thấy đầu ra nhật ký trên thiết bị đầu cuối mà bạn đang chạy rails server trên.

Bây giờ :

Hãy cùng tìm hiểu cách bạn có thể đăng nhập Ruby bằng Logger lớp học!

Lớp người ghi sổ

Lớp Ruby Logger cung cấp cho bạn cách tạo nhật ký với định dạng đầu ra mặc định và các mức độ nghiêm trọng khác nhau.

Đây là cách tạo nhật ký :

logger = Logger.new("my_log.txt")

Thao tác này sẽ ghi thông báo ghi nhật ký vào my_log.txt .

Nếu bạn muốn hiển thị thông báo trên thiết bị đầu cuối, nơi chương trình đang chạy, bạn có thể đăng nhập vào STDOUT .

Như thế này :

logger = Logger.new(STDOUT)

Việc ghi nhật ký thông báo có thể có nhiều cấp độ khác nhau, tùy thuộc vào mức độ quan trọng của chúng.

Các cấp độ :

  • GỢI Ý
  • THÔNG TIN
  • CẢNH BÁO
  • LỖI
  • CHẤT BÉO
  • CHƯA BIẾT

Mỗi cấp đều có một phương thức phiên bản tương ứng.

Vì vậy, nếu bạn muốn ghi “thông tin”.

Làm điều này :

logger.info("I'm reading a RubyGuide about logging!")

Đây là giao diện của mục nhập nhật ký thực tế :

# I, [2019-08-08T19:22:00.152079 #642]  INFO -- : I'm reading a RubyGuide about logging!

Việc có các cấp độ khác nhau này sẽ giúp bạn lọc tệp nhật ký của mình, vì vậy bạn có thể tìm thấy những gì bạn đang tìm kiếm nhanh hơn!

Nó cũng giúp bạn xem có bao nhiêu lỗi và thông báo cảnh báo bạn tạo ra theo thời gian.

Công cụ tuyệt vời!

Cách định dạng nhật ký của bạn

Sử dụng định dạng đầu ra mặc định cho nhật ký Ruby của bạn là điều tuyệt vời vì các công cụ có thể được xây dựng xung quanh nó và nhiều người có thể hiểu cách hoạt động của nó.

Đây lại là dòng nhật ký :

# I, [2019-08-08T19:22:00.152079 #642]  INFO -- : test

Điều này có một vài thành phần :

  • "Tôi" đại diện cho chữ cái đầu tiên của mức độ nghiêm trọng
  • Bên trong dấu ngoặc, bạn tìm thấy dấu thời gian và id quy trình (PID) của quy trình đã tạo ra thông báo nhật ký này
  • INFO là tên đầy đủ của mức độ nghiêm trọng
  • Sau dấu hai chấm, chúng ta có thông báo thực tế đã được ghi lại

Nhưng định dạng này có thể không lý tưởng cho tất cả mọi người.

Vì vậy, Ruby cho phép bạn thay đổi nó!

Đây là cách thực hiện :

logger.formatter = proc { |severity, datetime, progname, msg| "#{severity}, #{datetime}, #{msg}\n" }

Kết quả là bạn nhận được kết quả này :

DEBUG, 2019-08-08 19:39:01 +0200, testing

Bạn có thể sử dụng điều này để thêm thông tin bổ sung có thể hữu ích cho bạn và nhóm của bạn.

Cách giới hạn kích thước nhật ký của bạn

Nhật ký có thể trở thành tệp thực sự lớn trừ khi bạn theo dõi kích thước của chúng.

Nếu bạn hết dung lượng ổ đĩa do nhật ký, thì tất cả các loại điều kỳ lạ sẽ bắt đầu xảy ra trong hệ thống của bạn.

Có một giải pháp!

Bạn có thể giới hạn kích thước nhật ký của mình.

Đây là cách thực hiện :

MEGABYTE = 1024 ** 2
ONE_HUNDRED_MEGABYTES = MEGABYTE * 100

logger = Logger.new("my_log.txt", 1, ONE_HUNDRED_MEGABYTES)

Tham số đầu tiên là nơi lưu thông báo nhật ký.

Tham số thứ 2 là số lượng tệp nhật ký bạn muốn giữ (xoay nhật ký) và tham số cuối cùng là kích thước tệp tối đa.

Đọc &Lọc Nhật ký

Ok, bạn đã có nhật ký của mình.

Làm thế nào để bạn đọc chúng và tìm thấy những gì bạn cần?

Nhật ký là tệp văn bản thuần túy, vì vậy bạn có thể sử dụng bất kỳ công cụ xử lý văn bản nào bạn thích.

Ví dụ :

Grep.

Đây là một công cụ dòng lệnh mà bạn có thể sử dụng để lọc các tệp văn bản.

Đây là cách thực hiện :

grep INFO my_log.txt

Điều này cung cấp cho bạn mọi dòng đã được ghi là “THÔNG TIN”.

Bạn có thể tìm kiếm bất kỳ văn bản nào khác bên trong nhật ký của bạn bằng cách sử dụng grep , chỉ cần thay thế “THÔNG TIN” bằng những gì bạn đang tìm kiếm.

Một công cụ Unix khác mà bạn có thể sử dụng được gọi là less (với tùy chọn -R).

Nó cho phép bạn cuộn qua các nhật ký chỉ bằng bàn phím của bạn và nó có chức năng tìm kiếm .

Bạn cũng có thể sử dụng…

Các công cụ cụ thể để quản lý và tìm kiếm nhật ký.

Giống như đá quý logster của Discourse.

Tóm tắt

Bạn đã tìm hiểu về cách đăng nhập Ruby, nó là gì, nó hoạt động như thế nào và cách sử dụng nó.

Bây giờ đến lượt bạn thử điều này.

Cảm ơn vì đã đọc!