• <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 是啟用內部調試日志,不過具體作用不是很明確
            2.Appender是實現日志輸出的策略描述
            一般情況下,參考以上例子就足夠了
            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;
              }  回復  更多評論   
             
            狠狠色丁香婷婷久久综合五月 | 亚洲精品国产成人99久久| 久久精品国产亚洲AV无码麻豆| 久久久久久久久久久| 亚洲精品乱码久久久久久自慰| 亚洲日韩中文无码久久| 国产精品一区二区久久国产| 国产成人精品久久| 色综合久久88色综合天天 | 一本色道久久综合狠狠躁| 久久精品亚洲日本波多野结衣| 青青草国产成人久久91网| 看全色黄大色大片免费久久久| 久久久久亚洲国产| 97久久天天综合色天天综合色hd| 久久精品国产99久久久香蕉| 国内精品久久国产| 国产精品成人99久久久久91gav| 久久久久久久91精品免费观看| 久久久久免费看成人影片| 国内精品伊人久久久久网站| 精品久久久久中文字幕日本| 久久久无码精品午夜| 91超碰碰碰碰久久久久久综合| 久久天天躁夜夜躁狠狠躁2022| 久久精品视频免费| 97久久精品无码一区二区天美 | 日本精品久久久久久久久免费| 嫩草伊人久久精品少妇AV| 久久伊人影视| 狠狠精品久久久无码中文字幕 | 午夜欧美精品久久久久久久| 久久无码一区二区三区少妇| 国产综合免费精品久久久| 久久99国产精品久久99| 久久久久久久久无码精品亚洲日韩 | 囯产精品久久久久久久久蜜桃| 久久精品无码一区二区三区日韩| 欧美一区二区三区久久综| 久久久久久午夜成人影院| 亚洲国产精品无码久久SM |