牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

log4cplus的三个例程

http://log4cplus.sourceforge.net/codeexamples.html
里面自带的三个例程

Hello World Example
#include <log4cplus/logger.h>
#include 
<log4cplus/configurator.h>
#include 
<iomanip>

using namespace log4cplus;

int
main()
{
    BasicConfigurator config;
    config.configure();

    Logger logger 
= Logger::getInstance("main");
    LOG4CPLUS_WARN(logger, 
"Hello, World!");
    
return 0;
}

ostream
Example (Show how to write logging messages.)
#include <log4cplus/logger.h>
#include 
<log4cplus/configurator.h>
#include 
<iomanip>

using namespace std;
using namespace log4cplus;

int
main()
{
    BasicConfigurator config;
    config.configure();
    Logger logger 
= Logger::getInstance("logger");

    LOG4CPLUS_WARN(logger,   
"This is"
                           
<< " a reall"
                           
<< "y long message." << endl
                           
<< "Just testing it out" << endl
                           
<< "What do you think?")
    LOG4CPLUS_WARN(logger, 
"This is a bool: " << true)
    LOG4CPLUS_WARN(logger, 
"This is a char: " << 'x')
    LOG4CPLUS_WARN(logger, 
"This is a short: " << (short)-100)
    LOG4CPLUS_WARN(logger, 
"This is a unsigned short: " << (unsigned short)100)
    LOG4CPLUS_WARN(logger, 
"This is a int: " << (int)1000)
    LOG4CPLUS_WARN(logger, 
"This is a unsigned int: " << (unsigned int)1000)
    LOG4CPLUS_WARN(logger, 
"This is a long(hex): " << hex << (long)100000000)
    LOG4CPLUS_WARN(logger, 
"This is a unsigned long: " 
                   
<< (unsigned long)100000000)
    LOG4CPLUS_WARN(logger, 
"This is a float: " << (float)1.2345)
    LOG4CPLUS_WARN(logger, 
"This is a double: " 
                          
<< setprecision(15
                          
<< (double)1.2345234234)
    LOG4CPLUS_WARN(logger, 
"This is a long double: " 
                          
<< setprecision(15
                          
<< (long double)123452342342.342)

    
return 0;
}


LogLevel Example (Shows how log messages can be filtered at runtime by adjusting the LogLevel.)
#include <log4cplus/logger.h>
#include 
<log4cplus/configurator.h>
#include 
<iostream>

using namespace std;
using namespace log4cplus;

Logger logger 
= Logger::getInstance("main");

void printMessages()
{
    LOG4CPLUS_TRACE(logger, 
"printMessages()");
    LOG4CPLUS_DEBUG(logger, 
"This is a DEBUG message");
    LOG4CPLUS_INFO(logger, 
"This is a INFO message");
    LOG4CPLUS_WARN(logger, 
"This is a WARN message");
    LOG4CPLUS_ERROR(logger, 
"This is a ERROR message");
    LOG4CPLUS_FATAL(logger, 
"This is a FATAL message");
}



int
main()
{
    BasicConfigurator config;
    config.configure();

    logger.setLogLevel(TRACE_LOG_LEVEL);
    cout 
<< "*** calling printMessages() with TRACE set: ***" << endl;
    printMessages();

    logger.setLogLevel(DEBUG_LOG_LEVEL);
    cout 
<< "\n*** calling printMessages() with DEBUG set: ***" << endl;
    printMessages();

    logger.setLogLevel(INFO_LOG_LEVEL);
    cout 
<< "\n*** calling printMessages() with INFO set: ***" << endl;
    printMessages();

    logger.setLogLevel(WARN_LOG_LEVEL);
    cout 
<< "\n*** calling printMessages() with WARN set: ***" << endl;
    printMessages();

    logger.setLogLevel(ERROR_LOG_LEVEL);
    cout 
<< "\n*** calling printMessages() with ERROR set: ***" << endl;
    printMessages();

    logger.setLogLevel(FATAL_LOG_LEVEL);
    cout 
<< "\n*** calling printMessages() with FATAL set: ***" << endl;
    printMessages();

    
return 0;
}


posted on 2006-08-26 04:56 杨粼波 阅读(1101) 评论(5)  编辑 收藏 引用 所属分类: C++

评论

# re: log4cplus的三个例程[未登录] 2007-03-31 10:05 thinkinnight

在使用VS2005编译时,发现threadtest有link错误,通过观察dll文件的导出,似乎对继承自AbstractThread的TestThread无法识别,不知有何方法可以解决。   回复  更多评论   

# re: log4cplus的三个例程 2007-03-31 10:59 随意

我用的是VS2003,
不知道是否是于编译器有关,
你看你头文件,静态库是否包含正确?  回复  更多评论   

# re: log4cplus的三个例程[未登录] 2007-03-31 14:40 thinkinnight

使用VC6编译,没有问题,完全可以通过,看来是VS2005对于模板的支持进行了一些改变,真是不爽  回复  更多评论   

# re: log4cplus的三个例程[未登录] 2007-03-31 14:41 thinkinnight

静态lib库应该是没有问题的,就是用的sf上下下来的代码  回复  更多评论   

# re: log4cplus的三个例程 2007-04-03 09:42 随意

我在这里看到了段东西.
http://www.cublog.cn/u/29989/showart_237707.html

Log4cplus1.0.2 要在vs2005上编译需要将include中的stringhelper.h的118行左右添加如下代码:
typedef std::output_iterator_tag iterator_category;
并且将128行左右的__value改名,例如改成__rvalue

我看到你发在CSDN上的东西了,
可惜我这个是VC7.x的编译器,
要不然可以给你看看了.  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理