• <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 閱讀(989) 評論(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ù)  更多評論   
             
            亚洲国产精品人久久| 无码人妻久久一区二区三区免费丨| 超级97碰碰碰碰久久久久最新 | 亚洲国产成人久久综合区| 9191精品国产免费久久| 久久se精品一区二区| 久久青青草原综合伊人| 91精品国产91久久综合| 99麻豆久久久国产精品免费| 久久成人影院精品777| 99久久免费只有精品国产| 久久精品女人天堂AV麻| 久久婷婷五月综合色99啪ak| 国产精品中文久久久久久久| 久久无码AV一区二区三区| 久久人人爽人人人人爽AV| 久久精品国产亚洲AV不卡| 国产精品9999久久久久| 日韩亚洲欧美久久久www综合网 | 亚洲精品高清久久| 国内精品久久久久久中文字幕| 欧美一级久久久久久久大片| 久久精品国产99久久久古代| 国产成人精品久久免费动漫 | 99精品久久精品一区二区| 久久久亚洲欧洲日产国码aⅴ| 久久福利青草精品资源站免费| 久久精品国产黑森林| 亚洲AV无码久久寂寞少妇| 久久香蕉一级毛片| 伊人久久综合精品无码AV专区| 97久久超碰成人精品网站| 亚洲精品无码久久久| 久久99精品国产99久久6男男| 人人狠狠综合久久亚洲| 国产精品久久久久影院嫩草| 欧美一区二区久久精品| 久久青青草原综合伊人| 色综合久久久久无码专区| 久久免费香蕉视频| 久久久91精品国产一区二区三区|