• <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 閱讀(1006) 評論(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日韩精品久久久久久久| 99久久99这里只有免费费精品 | 久久精品毛片免费观看| 91精品婷婷国产综合久久| 国产精品99久久久精品无码| 久久免费高清视频| 无码伊人66久久大杳蕉网站谷歌 | 欧美伊人久久大香线蕉综合| 久久精品国产精品青草| 亚洲午夜久久久影院| 久久精品国产精品亜洲毛片| 久久99精品国产| 久久人人爽人人人人片av| 人人狠狠综合久久亚洲高清| 久久91精品国产91久久麻豆| 性做久久久久久久| 国色天香久久久久久久小说| 中文字幕无码久久人妻| 久久精品这里只有精99品| 亚洲国产精品婷婷久久| 国产精品一区二区久久国产| 欧美黑人激情性久久| 久久综合久久自在自线精品自| 伊人久久一区二区三区无码| 老司机午夜网站国内精品久久久久久久久| 69久久夜色精品国产69| 久久99精品久久久久久动态图| 亚洲va久久久噜噜噜久久| 亚洲狠狠婷婷综合久久蜜芽| 亚洲精品tv久久久久久久久 | 99精品久久精品一区二区| 91精品国产高清久久久久久io| 国产成人久久AV免费| 久久精品亚洲中文字幕无码麻豆| 99久久人妻无码精品系列| 国产精品一区二区久久精品|