2011-02-01 18 views
8

मैं लॉगिंग लाइब्रेरी के साथ काम करने के लिए लगभग 2 सप्ताह के लिए प्रयास कर रहा हूं। मैंने Log4cxx, Log4cpp, log4cplus और boost.log की कोशिश की है। समस्या यह नहीं है कि मेरे लिए इनमें से कोई भी काम नहीं है, यह है कि मैं यह नहीं समझ सकता कि उन्हें कैसे काम करना है। मैं वास्तव में log4cxx का उपयोग करना चाहता हूं क्योंकि मैं काम पर लॉग 4j/लॉगबैक के साथ काम कर रहा हूं, लेकिन मैं लॉग 4j के निर्माण के आधार पर किसी भी पुस्तकालय को प्राप्त करने में सक्षम नहीं हूं। मैं बूस्ट लाइब्रेरी का निर्माण और उपयोग करने में सक्षम हूं, लेकिन boost.log मुझे सभी प्रकार की लिंकर त्रुटियों को देता है चाहे मैं कोशिश करता हूं। अगर कोई मुझे काम करने वाले इन पुस्तकालयों में से एक प्राप्त करने के लिए एक चरण-दर-चरण मार्गदर्शिका में निर्देशित कर सकता है तो मैं इसकी सराहना करता हूं। इसके अलावा, अगर मैं मायने रखता हूं तो मैं अपने आईडीई के रूप में ग्रहण का उपयोग कर रहा हूं।सी ++ लॉगिंग लाइब्रेरी सेटअप

+1

आप किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं? साथ ही, पहले पुस्तकालयों को संकलित करना सुनिश्चित करें और फिर हेडर फ़ाइलों को अपनी परियोजना में शामिल करने के लिए लें (कार्यान्वयन पुस्तकालयों में संकलित किया जाएगा ** एक ** समय इसलिए आपको विशाल पुस्तकालय को कई बार पुन: संकलित करने की आवश्यकता नहीं है) – RageD

+0

मैं विंडोज 7 का उपयोग कर रहा हूं। मुझे यकीन नहीं है कि संकलन के बारे में आपका क्या मतलब है और फिर हेडर फाइलें लेना। क्षमा करें, मैं तीसरे पक्ष के पुस्तकालयों का उपयोग करने के लिए नया हूं। कम से कम बढ़ावा देने के लिए मैं केवल रूट रूट निर्देशिका को पथ शामिल करने के रूप में जोड़ता हूं और फिर मुझे आवश्यक प्रत्येक फ़ाइल के लिए निर्देश शामिल करने का उपयोग करता हूं। – Shenlong55

उत्तर

0

मैं की सिफारिश करता हूं। जब आप पहली बार डाउनलोड करते हैं तो सब कुछ बनाने में कुछ समय लगता है - make build test टाइप करें और दोपहर का भोजन करें - और आपको लिंक समय पर आउटपुट स्ट्रीम (पैंथियोस उन्हें "बैक सिरों" कहते हैं) का चयन करना होगा, लेकिन कोडिंग के लिए, यह वास्तव में सरल है, उदा।

std::string name; 
int age; 

pantheios::log_DEBUG("name=", name, " age=", pantheios::integer(age)); 

यह गति के लिए जमीन से बनाया गया है - जब तक कि "डीबग" स्तर स्विच ऑन करने पर उम्र एक स्ट्रिंग में परिवर्तित नहीं किया जाएगा - और मजबूती लिए - इसलिए आप नहीं कर सकते मौलिक प्रकार सीधे पास करें, और "डालने वाले" का उपयोग करें (उदाहरण के लिए pantheios::integer)। अधिक जानकारी के लिए Pantheios 'लेखक द्वारा this recent blog post देखें।

1

क्या आपको कभी यह काम मिल रहा है? Log4cxx निश्चित रूप से Win7 पर काम करता है। शायद आप अपनी कुछ बिल्ड त्रुटियों को पोस्ट कर सकते हैं। बस अनुमान लगाना, शायद आपने अपनी ग्रहण परियोजना को log4cxx स्थिर lib के साथ लिंक करने के लिए कॉन्फ़िगर नहीं किया है।

1

बूस्ट.लॉग मेरे लिए काफी अच्छा काम करता है (लिनक्स और विंडोज)। यह केवल हेडर लाइब्रेरी नहीं है, एक संकलित भाग है जिसे आपको लिंक करने की आवश्यकता है। निर्देश here देखें।

यह भी अन्य, गैर हैडर पर निर्भर करता है, पुस्तकालयों बढ़ाएं:

प्रवेश पुस्तकालय कई अन्य बूस्ट पुस्तकालयों इमारत भी जरूरत है कि उपयोग करता है। ये बूस्ट हैं। फाइल सिस्टम, बूस्ट। सिस्टम, बूस्ट। डेटटाइम, बूस्ट। थ्रेड और बूस्ट। रेगेक्स। भवन प्रक्रिया पर विस्तृत निर्देशों के लिए उनके दस्तावेज़ीकरण का संदर्भ लें।

आपके प्लेटफॉर्म के आधार पर बूस्ट पुस्तकालयों के पूर्व-निर्मित संस्करण हो सकते हैं। अन्यथा यदि आप निर्देशों का पालन करते हैं तो इसे स्वयं बनाना सरल है। यदि आप अटक जाते हैं तो अपने प्रश्न को अपडेट करें जहां आप वास्तव में फंस गए हैं और आप क्या देख रहे हैं।

0

मैं काम करने के लिए log4cxx प्राप्त करने में कामयाब रहा, यह विंडोज 7 ओएस पर चल रहे विजुअल स्टूडियो 2013 में किया गया था। ,

log4cxx ज़िप पैकेज डाउनलोड इसकी सामग्री निकालने, http://logging.apache.org/log4cxx/download.html

डाउनलोड अप्रैल और अप्रैल-util ज़िप संकुल http://apr.apache.org/download.cgi

तब:

यह निम्न मैं, क्या किया कदम से कदम है

  1. मैन्युअल रूप से इस ज़िप apr-1.2.11-win32-src निकालें।जिप ( निकाले फ़ोल्डर, नाम दिया जाना चाहिए 'अप्रैल' अगर यह मैन्युअल का नाम नहीं है यह)
  2. मैन्युअल रूप से जिप apr-util-1.2.10-win32-src.zip निकालने ( निकाले फ़ोल्डर नाम दिया जाना चाहिए 'अप्रैल-util', अगर यह नहीं है मैन्युअल रूप से इसका नाम बदलना)
  3. एक कमांड प्रॉम्प्ट खोलें और निम्न चलाएँ: सीडी अपाचे-log4cxx-0.10.0 कॉन्फ़िगर (इस configure.bat निष्पादित करेंगे)

हमें एपीआर आईसीओएनवी और एलडीएपी समर्थन के उपयोग को अक्षम करने की आवश्यकता होगी। ऐसा करने में, हम स्वयं निम्न फ़ाइलें जोड़ देंगे:

  1. ओपन अप्रैल-util \ \ apu.hw शामिल हैं। "#define APU_HAVE_APR_ICONV" से शुरू होने वाली रेखा खोजें। मान को 0 में बदलें और सहेजें।
  2. ओपन apr-util \ \ apr_ldap.hw शामिल करें। "# परिभाषित करें APR_HAS_LDAP" के साथ शुरू होने वाली रेखा को ढूंढें "मान को 0 में बदलें और सहेजें।

हमें * .dsw * * cxproj में कनवर्ट करने के लिए log4cxx.dll बनाने की आवश्यकता है।

  1. विजुअल स्टूडियो 2013 लॉन्च करें और log4cxx.dsw खोलें।
  2. वीएस पूछेगा कि क्या आप सबकुछ बदलना चाहते हैं। बस हाँ क्लिक करें। माइग्रेशन रिपोर्ट में कुछ चेतावनियां हो सकती हैं, लेकिन कुछ भी नहीं जो को समाधान को खोलने से रोकना चाहिए।

> परियोजनाओं xml, apr, और apr-util सफलतापूर्वक निर्माण करना चाहिए।

यदि आप log4cxx प्रोजेक्ट को संकलित करने का प्रयास करते हैं तो यह अधिकतर सैकड़ों त्रुटियों के साथ असफल हो जाएगा। यह वीसी ++ में एक बग के कारण है जिसे आसपास काम किया जा सकता है।

  1. ले जाएँ सभी मैक्रो बाहर (ऊपर) क्लास में उन्हें कर रहे हैं। LOG4CXX_LIST_DEF मैक्रो वर्गों को परिभाषित करने के लिए प्रयोग किया जाता है। त्रुटि C2252 में रिपोर्ट किए गए सभी मैक्रोज़ को किसी भी कक्षा से बाहर निकलने की आवश्यकता होगी। यह में चलती परिभाषाएं भी शामिल हो सकती हैं जिनका उपयोग मैक्रो में किया जाता है।
  2. इसके बाद, सभी LoggingEvent :: कीसेट कीसेट करने के लिए बदल (अब यह एक माता पिता के वर्ग में नीडिंत है)

> इसके बाद log4cxx परियोजना अब आपकी मशीन पर सफलतापूर्वक संकलन चाहिए ।