Log 4 jのC++バージョンLog 4 cplus


ログシステムといえば、有名なLog 4 j、特にJavaを使っている人たちは、誰も知らない人はいないと言えます.Log 4 jはその簡単な使用方法(jarパッケージを導入し、1行のコードで呼び出すことができる)、柔軟(プロファイルを通じて自由に構成することができる)、機能が強い(複数レベル、複数の出力先を構成可能、Console、File、システムログ、リモートのLogServerなど、ログフォーマットのカスタマイズ、自動生成、ログファイルの削除など)などの特性は、Javaログシステムの第一選択です.
 
1.Log 4 jのC++バージョンLog 4 cplus
上で述べたように、ログは今のシステムでは欠かせません.Javaには強力なLog 4 jが使用できますが、最も重要な言語の一つとなっているC++としてはどんな選択肢がありますか.
幸いなことに、いくつかの牛はずっと前からこの問題を発見して、彼らはLog 4 Jに倣って、C++言語を使って1セットのログシステムLog 4 cplusを開発して、Log 4 cplusの目的はとても明確で、C++版のLog 4 jを作ります.そして最も重要なのはLog 4 cplusがオープンソースであることです.
2.使用概要
1)ダウンロードhttp://sourceforge.net/projects/log4cplus/
2)Log 4 jはC++ライブラリであり,コンパイル後に利用できる.同時にlog 4 cplusはwindowsとlinuxをサポートします:
Windows下:ルートディレクトリの下のmsvc 10の下のvsプロジェクトを開き、コンパイルすればいいです.
Linuxの下:configure,make
3)使用
a)最も簡単な使い方
ソースの表示
印刷?01 #include    02 #include    03 #include    04       05 using namespace log4cplus;   06       07 int    08 main()   09 {   10      BasicConfigurator config;   11      config.configure();   12       13      Logger logger = Logger::getInstance( "main" );   14      LOG4CPLUS_WARN(logger, "Hello, World!" );   15      return ;   16 }
b)オーダー可能な方式
ソースの表示
印刷?01 /*    1-6,appender , LogLevel 。*/    02 #include    03 #include    04 #include       05 using namespace log4cplus;   06 using namespace log4cplus::helpers;      07 int main(){   08      /* step 1: Instantiate an appender object */        09      SharedObjectPtr _append ( new ConsoleAppender());       10      _append->setName( "append for test" );      11      /* step 2: Instantiate a layout object */        12      std::string pattern = "%d{%m/%d/%y %H:%M:%S}  - %m [%l]%n" ;       13      std::auto_ptr _layout( new PatternLayout(pattern));      14      /* step 3: Attach the layout object to the appender */        15      _append->setLayout( _layout );      16      /* step 4: Instantiate a logger object */        17      Logger _logger = Logger::getInstance( "test" );      18      /* step 5: Attach the appender object to the logger  */       19      _logger.addAppender(_append);      20      /* step 6: Set a priority for the logger  */        21      _logger.setLogLevel(ALL_LOG_LEVEL);      22       /* log activity */        23      LOG4CPLUS_DEBUG(_logger, "This is the FIRST log message..." )       24     sleep(1);       25     LOG4CPLUS_WARN(_logger, "This is the SECOND log message..." )      26     return 0;   27 }
4)構成
Log 4 cplusの構成は基本的にlog 4 Jと同じである.次に例を示します
ソースの表示
印刷?01 log4cplus.rootLogger=DEBUG, STDOUT, ALL_MSGS   02       03       04 log4cplus.appender.STDOUT=log4cplus::ConsoleAppender   05 log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout   06 #log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%n   07 log4cplus.appender.STDOUT.layout.ConversionPattern=[%-5p %d{%y-%m-%d %H:%M:%S}] [%l]%n%m%n%n   08       09       10 #    11 log4cplus.appender.ALL_MSGS=log4cplus::RollingFileAppender     12       13 #    14 log4cplus.appender.ALL_MSGS.MaxFileSize=100MB   15       16 #    17 log4cplus.appender.ALL_MSGS.MaxBackupIndex=10   18       19 #    20 log4cplus.appender.ALL_MSGS.File= log /test. log    21 log4cplus.appender.ALL_MSGS.layout=log4cplus::PatternLayout   22 #    23 #log4cplus.appender.ALL_MSGS.layout.ConversionPattern=|%D:%d{%Q}|%p|%t|%l|%m|%n   24 log4cplus.appender.ALL_MSGS.layout.ConversionPattern=[%-5p %d{%y-%m-%d %H:%M:%S}] [%l]%n%m%n%n   25 # , debug    26 #log4cplus.appender.ALL_MSGS.filters.1=log4cplus::spi::LogLevelMatchFilter   27 #log4cplus.appender.DEBUG_MSGS.filters.1.LogLevelToMatch=DEBUG   28 #log4cplus.appender.DEBUG_MSGS.filters.1.AcceptOnMatch=true   29 #log4cplus.appender.DEBUG_MSGS.filters.2=log4cplus::spi::DenyAllFilter