2008-10-21 11 views
7

मेरे पास एक C++ एप्लिकेशन है जो log4cxx (रोलिंगफ़ाइल एपेंडर) का उपयोग करके कुछ फ़ाइल में लॉग करता है। मैं उसी फाइल में लॉग इन करना चाहता हूं, साथ ही, सी # में लिखे गए किसी अन्य मॉड्यूल से; इसलिए मैंने उसी फ़ाइल का उपयोग करने के लिए log4net को कॉन्फ़िगर किया है, लेकिन मुझे नए संदेश नहीं मिल सकते हैं। अगर मैं C++ लॉगिंग को निष्क्रिय करता हूं, तो मैं C# संदेश देख सकता हूं। तो मुझे लगता है कि यह एक लॉकिंग मुद्दा है, और फ़ाइल को लॉक न करने के लिए log4cxx को बताने के लिए कॉन्फ़िगरेशन विकल्प की तलाश की। मैं log4net के लिए मिनीमल लॉक मॉडल में आया, लेकिन log4cxx में कुछ भी नहीं मिला ... क्या किसी को पता है कि यह किया जा सकता है, और कैसे? पहले सेमिश्रण log4cxx और log4net

धन्यवाद,

अर्नेस्टो कलन

उत्तर

4

मुझे लगता है कि आप संगामिति और विवाद समस्याओं में कोई बात नहीं क्या विन्यास आप जब तक का उपयोग चलाने के रूप में आप दो विभिन्न प्रक्रियाओं के लिए प्रयास कर रहे हैं हो सकता है एक ही करने के लिए लॉग इन करें फ़ाइल।

आपको दोनों प्रक्रियाओं से लॉग इवेंट को तीसरे, केंद्रीकृत स्थान पर भेजने में देखना चाहिए - लॉग 4net में RemotingAppender पर एक नज़र डालें, मुझे लगता है कि log4cxx में कुछ समान है।

1

यहां तक ​​कि अगर सवाल काफी पुराना (और जवाब के रूप में चिह्नित) और आप शायद पहले से ही अपनी परियोजना को पूर्ण कर लें है:

log4net और log4cxx अलग प्रवेश framworks कि एक दूसरे का पता नहीं है तो आप कर सकते हैं कर रहे हैं उन्हें एक ही फ़ाइल में लिखने के लिए कॉन्फ़िगर नहीं करें। केवल फ्रैमवर्क्स में से एक फ़ाइल को लेखन के लिए खुली होगी, जो भी पहले थी।

मैंने इसी स्थिति में क्या किया है (लॉग 4नेट का उपयोग कर एक नया सी # मॉड्यूल कस्टम लॉजिंग के साथ एक विरासत सी ++ एप्लिकेशन) create a custom log4net appender है जो आगे पुराने लॉगिंग ढांचे में निशान लगाता है। प्रोजेक्ट में जहां मैं शामिल था, पुराने सी ++ कोड में विंडोज़ कॉम इंटरफेस था जो लॉग संदेश लिखने के लिए था, जिसे कस्टम एपेंडर इस्तेमाल किया गया था।

एक और तरीका कस्टम एपेंडर बनाने के लिए सी ++/सीएलआई का उपयोग करेगा।