Trình ghi nhật ký tùy chỉnh
Tạo nhật ký của riêng bạn
Trong trường hợp các công cụ được liệt kê ở trên để tìm lỗi là không đủ, bạn luôn có thể tạo trình ghi nhật ký của riêng mình và thực hiện tất cả các nhu cầu của mình trong đó. Ví dụ: hãy tạo một trình ghi nhật ký sẽ thêm thông tin về người dùng đã kích hoạt sự kiện này và cấp độ truy cập của nó bên cạnh mô tả chung về sự kiện.
Mô hình dữ liệu logger
Để làm điều này, hãy bắt đầu bằng cách tạo một mô hình trong cơ sở dữ liệu. Chúng ta cần một mô hình rất đơn giản, với ba trường bắt buộc.
- info (text) - thông tin chung về sự kiện
- user (integer) - ID người dùng
- access (array string) - nhóm người dùng (có thể có một số)
Logger quá trình kinh doanh
Sau đó, chúng ta sẽ tạo một quy trình nghiệp vụ để ghi nhật ký vào cơ sở dữ liệu. Nhiệm vụ của nó sẽ là nhận thông tin về bất kỳ sự kiện nào, bổ sung thông tin về người dùng và lưu kết quả cuối cùng vào cơ sở dữ liệu.
Để lấy thông tin về người dùng, hãy sử dụng khối Xác thực Auth: Get current user . Lưu ý rằng nó sẽ chỉ có thể biểu thị kết quả dưới dạng mô hình người dùng nếu Middleware Token Auth thực mã thông báo phần mềm trung gian được bật trên điểm cuối đã bắt đầu thực thi nó.
Chúng tôi sử dụng Expand User để mở rộng kết quả và nhận các trường bắt buộc. Trong trường hợp của chúng tôi, đó là ID , Login và Groups . Việc sử dụng hai cái đầu tiên khá tầm thường, bạn chỉ cần chuyển đổi Login từ định dạng thư sang String tiêu chuẩn ( To String block).
Trong trường hợp của các nhóm người dùng, tình hình có phần phức tạp hơn. Chúng được lưu trữ ở định dạng Enum . Đây là kiểu liệt kê chỉ lưu trữ danh sách các mã định danh trong cơ sở dữ liệu chứ không phải giá trị văn bản của chúng. Trong trường hợp của chúng tôi, giá trị 1 tương ứng với nhóm quản trị viên ( Admins ) và giá trị 2 tương ứng với nhóm người dùng ( Users ).
Nhiệm vụ của chúng tôi là giải mã số nhận dạng này và viết kết quả dưới dạng dữ liệu văn bản thuận tiện. Đối với điều này, bạn cần:
- Khai báo một biến mà thông tin văn bản về các nhóm người dùng sẽ được viết vào đó. Hãy sử dụng các khối String Array và Set Variable .
- Bắt đầu vòng lặp với khối For each loop . Nó sẽ nhận một mảng các nhóm của người dùng và sau đó, trong mỗi lần lặp lại, chuyển đổi nhóm tiếp theo thành giá trị văn bản của nó và thêm nó vào mảng.
- Sử dụng khối Switch , kiểm tra nhóm người dùng và tùy thuộc vào kết quả, chỉ đạo quá trình tiếp theo.
- Sử dụng các khối String và Set Variable , lưu trữ giá trị bắt buộc của nhóm người dùng trong một biến.
- Sử dụng các khối Append Array và Set Variable để thêm kết quả vào một mảng và lưu trữ nó trong một biến được khai báo trước khi bắt đầu vòng lặp.
Sau khi hoàn thành vòng lặp, bạn nên sử dụng khối Concat Strings (Multiple) để tạo chuỗi cuối cùng từ dữ liệu phân tán, chuỗi này sẽ được chuyển thành Text và ghi vào nhật ký.
Điều cuối cùng cần làm là tạo mô hình log và ghi nó vào cơ sở dữ liệu.
Kết quả BP sẽ trông như thế này:
Điểm cuối bộ ghi nhật ký
Quy trình kinh doanh đã sẵn sàng. Bây giờ chúng ta cần tạo một điểm cuối cho nó. Để thực hiện việc này, chúng tôi sẽ thay thế quy trình công việc hệ thống của điểm cuối POST /log/ bằng quy trình công việc vừa được tạo.
Bây giờ nhật ký của chúng ta đã hoàn toàn sẵn sàng hoạt động. Bạn có thể quay lại phần đầu của mô-đun, về quy trình nghiệp vụ Basic functions và thay thế nhật ký tiêu chuẩn bằng nhật ký do chính bạn tạo.
Giờ đây, mỗi khi bắt đầu tính toán, một nhật ký đặc biệt sẽ ghi lại không chỉ thông tin về thực tế của sự kiện này mà còn về người dùng nào đã thực hiện nó. Chúng ta có thể kiểm tra kết quả trong Swagger .
Tuyệt vời, nhật ký của chúng tôi thực sự hoạt động. Bây giờ nó chứa thông tin về sự kiện, thông tin đăng nhập của người dùng và quyền truy cập của anh ta.
Các lỗi có thể xảy ra và các hành động được đề xuất
Do đó, chúng tôi cấu trúc các biến thể có thể xảy ra của lỗi và các hành động để sửa chúng.
- Sai sót trong chính quá trình kinh doanh. Bạn nên sử dụng nhật ký để xác minh từng bước. Do đó, bạn có thể kiểm tra thực tế việc khởi chạy một khối quy trình kinh doanh nhất định và tất cả các tham số mà khối đó sử dụng, cả ở đầu vào và đầu ra.
- Lỗi khi gửi yêu cầu đến máy chủ. Để thực hiện việc này, hãy sử dụng Developer Tools trong trình duyệt. Bạn có thể kiểm tra xem yêu cầu đã được gửi hay chưa, phân tích cú pháp cấu trúc của nó và xem phản hồi nhận được.
- Yêu cầu không đúng định dạng. Bạn nên sử dụng Swagger để kiểm tra kỹ lưỡng, kiểm tra các tùy chọn truy vấn khác nhau và kết hợp tham số.
- Kết quả của yêu cầu không được phân tích cú pháp chính xác. Nó xảy ra rằng chúng tôi đang chờ đợi kết quả mà nó không nên có. Ví dụ: chúng tôi thêm dữ liệu vào cơ sở dữ liệu nhưng không cập nhật chúng trong bảng hiển thị dữ liệu này. Hãy nhớ rằng mỗi thành phần yêu cầu một quy trình kinh doanh tương ứng và đảm bảo rằng quy trình này được đặt cấu hình chính xác.