• <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ù)  更多評論   
             
            色99久久久久高潮综合影院| 久久久久99精品成人片三人毛片 | 久久这里只有精品18| 亚洲AV无码久久精品成人| 久久精品中文无码资源站| 久久99精品国产| 漂亮人妻被中出中文字幕久久 | 色综合久久综合网观看| 日本加勒比久久精品| 97久久精品人妻人人搡人人玩| AAA级久久久精品无码区| 久久伊人五月丁香狠狠色| 久久精品国产精品青草| 久久久久人妻一区二区三区| 久久久中文字幕| 亚洲AV无码成人网站久久精品大| 久久综合九色综合精品| 香蕉久久夜色精品升级完成| 久久精品中文字幕一区| 久久九九全国免费| 久久精品麻豆日日躁夜夜躁| 亚洲?V乱码久久精品蜜桃| 99久久99久久精品国产片果冻 | 久久超碰97人人做人人爱| 亚洲美日韩Av中文字幕无码久久久妻妇| 无遮挡粉嫩小泬久久久久久久| 亚洲色欲久久久久综合网| 国产69精品久久久久99| 国产成人久久AV免费| 嫩草伊人久久精品少妇AV| 久久精品国产亚洲AV忘忧草18| 久久强奷乱码老熟女| 久久婷婷五月综合色99啪ak| 亚洲国产成人久久综合一| 久久精品男人影院| 国产91久久综合| 国产日韩久久久精品影院首页| 久久久国产精品网站| 国产成人久久精品二区三区| 91精品国产高清久久久久久91| 狠色狠色狠狠色综合久久|