• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
            輸出到控制臺
            #include <iostream>
            #include 
            <log4cplus/helpers/loglog.h>

            using namespace std;
            using namespace log4cplus::helpers;

            void print_message() 
            {
                cout 
            << "Entering print_message()" << endl;
                LogLog::getLogLog()
            ->debug(LOG4CPLUS_TEXT("This is a Debug statement"));
                LogLog::getLogLog()
            ->warn(LOG4CPLUS_TEXT("This is a Warning"));
                LogLog::getLogLog()
            ->error(LOG4CPLUS_TEXT("This is a Error"));
                cout 
            << "Exiting print_message()" << endl << endl;
            }

            int main() 
            {
                print_message();

                cout 
            << "Turning on debug" << endl;
                LogLog::getLogLog()
            ->setInternalDebugging(true);
                print_message();

                cout 
            << "Turning on quiet mode" << endl;
                LogLog::getLogLog()
            ->setQuietMode(true);
                print_message();
                system(
            "pause");
                
            return 0;
            }
            另外一個例子:
            #include "log4cplus/logger.h"
            #include 
            "log4cplus/consoleappender.h"
            #include 
            "log4cplus/loglevel.h"
            #include 
            <iomanip>

            using namespace std;
            using namespace log4cplus;

            int main()
            {
                SharedAppenderPtr append_1(
            new ConsoleAppender());
                append_1
            ->setName(LOG4CPLUS_TEXT("First"));
                Logger::getRoot().addAppender(append_1);

                Logger root 
            = Logger::getRoot();
                Logger test 
            = Logger::getInstance(LOG4CPLUS_TEXT("test"));

                LOG4CPLUS_DEBUG(root,
                                
            "This is"
                                
            << " a reall"
                                
            << "y long message." << endl
                                
            << "Just testing it out" << endl
                                
            << "What do you think?");
                test.setLogLevel(NOT_SET_LOG_LEVEL);
                LOG4CPLUS_DEBUG(test, 
            "This is a bool: " << true);
                LOG4CPLUS_INFO(test, 
            "This is a char: " << 'x');
                LOG4CPLUS_INFO(test, 
            "This is a short: " << (short)-100);
                LOG4CPLUS_INFO(test, 
            "This is a unsigned short: " << (unsigned short)100);
                LOG4CPLUS_INFO(test, 
            "This is a int: " << (int)1000);
                LOG4CPLUS_INFO(test, 
            "This is a unsigned int: " << (unsigned int)1000);
                LOG4CPLUS_INFO(test, 
            "This is a long(hex): " << hex << (long)100000000);
                LOG4CPLUS_INFO(test, 
            "This is a unsigned long: " << (unsigned long)100000000);
                LOG4CPLUS_WARN(test, 
            "This is a float: " << (float)1.2345);
                LOG4CPLUS_ERROR(test, 
                                
            "This is a double: " 
                                
            << setprecision(15
                                
            << (double)1.2345234234);
                LOG4CPLUS_FATAL(test, 
                                
            "This is a long double: " 
                                
            << setprecision(15
                                
            << (long double)123452342342.342);
                system(
            "pause");
                
            return 0;
            }
            再來看幾個輸出到日志的小例子:
            #include <log4cplus/logger.h>
            #include 
            <log4cplus/fileappender.h>
            #include 
            <log4cplus/layout.h>
            #include 
            <log4cplus/ndc.h>
            #include 
            <log4cplus/helpers/loglog.h>

            using namespace log4cplus;

            const int LOOP_COUNT = 20000;

            int main()
            {
                helpers::LogLog::getLogLog()
            ->setInternalDebugging(true);
                SharedAppenderPtr append_1(
            new RollingFileAppender(LOG4CPLUS_TEXT("Test.log"),5*1024,5));
                append_1
            ->setName(LOG4CPLUS_TEXT("LOG4PLUS"));
                append_1
            ->setLayout(std::auto_ptr<Layout>(new TTCCLayout()));
                Logger::getRoot().addAppender(append_1);

                Logger root 
            = Logger::getRoot();
                Logger test 
            = Logger::getInstance(LOG4CPLUS_TEXT("test"));
                Logger subTest 
            = Logger::getInstance(LOG4CPLUS_TEXT("test.subtest"));

                
            for(int i=0; i<LOOP_COUNT; ++i) 
                {
                    NDCContextCreator _context(LOG4CPLUS_TEXT(
            "loop"));
                    LOG4CPLUS_DEBUG(subTest, 
            "Entering loop #" << i);
                }

                
            return 0
            }

            幾點說明:
            1.setInternalDebuging 是啟用內(nèi)部調(diào)試日志,不過具體作用不是很明確
            2.Appender是實現(xiàn)日志輸出的策略描述
            一般情況下,參考以上例子就足夠了
            posted on 2012-03-15 22:22 ccsdu2009 閱讀(996) 評論(1)  編輯 收藏 引用 所屬分類: 軟件工程
            Comments
            • # re: 使用log4plus
              cpper
              Posted @ 2012-03-17 13:55
              #include <log4cplus/logger.h>
              #include <log4cplus/fileappender.h>
              #include <log4cplus/layout.h>
              #include <log4cplus/ndc.h>
              #include <log4cplus/helpers/loglog.h>

              const int LOOP_COUNT = 20000;

              int main()
              {
              log4cplus::helpers::LogLog::getLogLog()->setInternalDebugging(false);
              log4cplus::SharedAppenderPtr append(new log4cplus::FileAppender(LOG4CPLUS_TEXT("emc.log")));
              append->setName(LOG4CPLUS_TEXT("LOG4PLUS"));
              append->setLayout(std::auto_ptr<log4cplus::Layout>(new log4cplus::TTCCLayout()));
              log4cplus::Logger::getRoot().addAppender(append);

              log4cplus::Logger root = log4cplus::Logger::getRoot();
              log4cplus::Logger test = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("emc"));

              for(int i=0; i<LOOP_COUNT; ++i)
              {
              log4cplus::NDCContextCreator logcontext(LOG4CPLUS_TEXT("loop"));
              LOG4CPLUS_DEBUG(test,"Entering loop #" << i);
              }

              return 0;
              }  回復(fù)  更多評論   
             
            亚洲精品乱码久久久久久中文字幕 | 免费精品国产日韩热久久| 国产69精品久久久久9999| 久久久噜噜噜久久| 久久精品九九亚洲精品| 久久精品国产91久久综合麻豆自制 | 久久久久人妻一区精品性色av| 久久香蕉综合色一综合色88| 久久精品综合一区二区三区| 欧美黑人又粗又大久久久| 99久久免费只有精品国产| 少妇内射兰兰久久| 精品久久久久久无码中文字幕| 亚洲国产另类久久久精品小说| 91麻精品国产91久久久久| 精品无码久久久久久午夜| 蜜桃麻豆WWW久久囤产精品| 亚洲国产精品婷婷久久| 久久国产精品一国产精品金尊| 久久无码国产| 久久av免费天堂小草播放| 久久se精品一区精品二区| 色综合久久久久无码专区| yy6080久久| 色狠狠久久综合网| 欧美性猛交xxxx免费看久久久| 国产精品内射久久久久欢欢| 青青草国产精品久久久久| 国产精品久久久久久福利漫画 | 久久精品国产WWW456C0M| 久久久久四虎国产精品| www.久久99| 蜜桃麻豆www久久| 国产成人久久AV免费| 国产美女久久精品香蕉69| 99久久国产综合精品麻豆| 国产美女久久精品香蕉69| 999久久久免费精品国产| 97久久香蕉国产线看观看| 国产精品久久自在自线观看| 青青草国产精品久久久久|