मैं एसिंक्रोनस टीसीपी सर्वर (विशेष रूप से, एक एमयूडी सर्वर) बनाने के लिए अद्भुत AnyEvent का उपयोग कर रहा हूं।पर्ल के AnyEvent के तहत उपयोग करने के लिए कौन सा लॉगिंग मॉड्यूल?
आदेश सब कुछ सुचारू रूप से और कोड संभव के रूप में कुछ अवरुद्ध/तुल्यकालिक टुकड़ों के साथ चालू रखने के लिए में, मैं उदाहरण AnyEvent::Memcached और AnyEvent::Gearman के लिए, कुछ मॉड्यूल मैं उनके अतुल्यकालिक समकक्ष के साथ उपयोग कर रहा था जगह ले ली है। यह मुख्य कार्यक्रम को काफी तेज़ होने की अनुमति देता है, जो वांछनीय है। मैंने इनमें से कुछ कॉलों को तुल्यकालिक होने की आवश्यकता के आसपास कोड किया है।
वर्तमान में एक समस्या है, और इस प्रश्न का ध्यान लॉगिंग है।
इस सर्वर प्रोग्राम के लिए AnyEvent में जाने से पहले, मैं Log::Log4perl का उपयोग कर रहा था क्योंकि यह मुझे ठीक से ट्यून करने की अनुमति देता है कि कौन से मॉड्यूल या सबराउटिन लॉग किए जाने चाहिए, किस स्तर पर और किस लॉग आउटपुट (स्क्रीन, फ़ाइल इत्यादि)।
समस्या यह है कि लॉग 4perl क्रियाएं (चेतावनी, जानकारी, आदि) वर्तमान में सिंक्रनाइज़ रूप से निष्पादित की जाती हैं लेकिन मेरे पास तब तक कोई आवश्यकता नहीं है जब तक लॉग लाइन अंततः स्क्रीन/फ़ाइल (और सही क्रम में))।
लॉग है :: लॉग 4perl अभी भी एक एसिंक्रोनस इवेंट हैंडलर जैसे AnyEvent का उपयोग करते समय सही विकल्प है, या मुझे एक अलग मॉड्यूल को देखना चाहिए? यदि हां, तो किसकी सिफारिश की जाती है?
यह स्पष्ट करने के लिए धन्यवाद कि एक async appender मौजूद प्रतीत नहीं होता है – mfontani