Tôi đang sử dụng tuyệt vời AnyEvent để tạo máy chủ TCP không đồng bộ (cụ thể là máy chủ MUD).Mô-đun ghi nhật ký nào để sử dụng trong AnyEvent của Perl?
Để giữ cho mọi thứ chạy trơn tru và với càng ít chặn/miếng đồng bộ của mã có thể, tôi đã thay thế một số module Tôi đã sử dụng với đối tác không đồng bộ của họ, ví dụ AnyEvent::Memcached và AnyEvent::Gearman. Điều này cho phép chương trình chính được khá nhanh chóng, đó là mong muốn. Tôi đã mã hóa xung quanh sự cần thiết cho một số các cuộc gọi được đồng bộ.
Một vấn đề tôi hiện có và trọng tâm của câu hỏi này là ghi nhật ký.
Trước khi chuyển sang AnyEvent cho chương trình máy chủ này, tôi đã sử dụng Log::Log4perl vì nó cho phép tôi tinh chỉnh mô-đun hoặc chương trình con nào được ghi lại, ở cấp độ nào và đầu ra nhật ký (màn hình, tệp, v.v ...).
Vấn đề ở đây là hành động Log4perl (cảnh báo, thông tin, v.v.) hiện đang được thực hiện đồng bộ nhưng tôi không yêu cầu điều đó miễn là các dòng ghi cuối cùng kết thúc trên màn hình/tệp (và theo đúng thứ tự).
Nhật ký :: Log4perl vẫn là lựa chọn đúng khi sử dụng trình xử lý sự kiện không đồng bộ như AnyEvent hay tôi nên xem xét một mô-đun khác? Nếu vậy, được khuyến nghị?
Cảm ơn bạn đã làm rõ rằng một ứng dụng không đồng bộ dường như không tồn tại – mfontani