求助:log4cplus的使用中,如何消除产生的多余的重复信息?
时间:2011-12-13
来源:互联网
下面是一个例子程序:
#include "stdafx.h"
#include <string>
#include <log4cplus/logger.h>//定义Log对象
#include <log4cplus/consoleappender.h>//输出到控制台
#include <log4cplus/layout.h>//输出格式
#include <log4cplus/configurator.h>
using namespace std;
using namespace log4cplus;
using namespace log4cplus::helpers;
int _tmain(int argc, _TCHAR* argv[])
{
for (int i=0; i<5; i++)
{
//定义控制台Appender
SharedAppenderPtr pConsoleAppender(new ConsoleAppender());
//定义Layout,并绑定到Appender上
log4cplus::tstring pattern = LOG4CPLUS_TEXT("%D{%Y/%m/%d %X} %p %% %m %% %n");
pConsoleAppender->setLayout(std::auto_ptr<Layout>(new PatternLayout(pattern)));
//定义Logger
Logger pTestLogger = Logger::getInstance(LOG4CPLUS_TEXT("LoggerName"));
//设置Logger优先级
pTestLogger.setLogLevel(INFO_LOG_LEVEL);
//将需要关联Logger的Appender添加到Logger上
pTestLogger.addAppender(pConsoleAppender);
char c[10];
itoa(i+1, c, 10);
string strItoStr = c;
//输出日志信息
LOG4CPLUS_INFO(pTestLogger, strItoStr);
}
return 0;
}
输出结果为:
2011/12/13 08:54:28 INFO % 1 %
2011/12/13 08:54:28 INFO % 2 %
2011/12/13 08:54:28 INFO % 2 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
希望输出的结果为:
2011/12/13 08:54:28 INFO % 1 %
2011/12/13 08:54:28 INFO % 2 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 5 %
为何每次都会重复产生比上一次多一次的重复结果呢?如果将此作为一个函数被工程调用的话,会生成很多重复的结果,该如何修改才能产生希望的结果呢?望高手指点,谢谢!
#include "stdafx.h"
#include <string>
#include <log4cplus/logger.h>//定义Log对象
#include <log4cplus/consoleappender.h>//输出到控制台
#include <log4cplus/layout.h>//输出格式
#include <log4cplus/configurator.h>
using namespace std;
using namespace log4cplus;
using namespace log4cplus::helpers;
int _tmain(int argc, _TCHAR* argv[])
{
for (int i=0; i<5; i++)
{
//定义控制台Appender
SharedAppenderPtr pConsoleAppender(new ConsoleAppender());
//定义Layout,并绑定到Appender上
log4cplus::tstring pattern = LOG4CPLUS_TEXT("%D{%Y/%m/%d %X} %p %% %m %% %n");
pConsoleAppender->setLayout(std::auto_ptr<Layout>(new PatternLayout(pattern)));
//定义Logger
Logger pTestLogger = Logger::getInstance(LOG4CPLUS_TEXT("LoggerName"));
//设置Logger优先级
pTestLogger.setLogLevel(INFO_LOG_LEVEL);
//将需要关联Logger的Appender添加到Logger上
pTestLogger.addAppender(pConsoleAppender);
char c[10];
itoa(i+1, c, 10);
string strItoStr = c;
//输出日志信息
LOG4CPLUS_INFO(pTestLogger, strItoStr);
}
return 0;
}
输出结果为:
2011/12/13 08:54:28 INFO % 1 %
2011/12/13 08:54:28 INFO % 2 %
2011/12/13 08:54:28 INFO % 2 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
2011/12/13 08:54:28 INFO % 5 %
希望输出的结果为:
2011/12/13 08:54:28 INFO % 1 %
2011/12/13 08:54:28 INFO % 2 %
2011/12/13 08:54:28 INFO % 3 %
2011/12/13 08:54:28 INFO % 4 %
2011/12/13 08:54:28 INFO % 5 %
为何每次都会重复产生比上一次多一次的重复结果呢?如果将此作为一个函数被工程调用的话,会生成很多重复的结果,该如何修改才能产生希望的结果呢?望高手指点,谢谢!
作者: fengbingchun 发布时间: 2011-12-13
该回复于2011-12-13 09:08:21被管理员删除
- 对我有用[0]
- 丢个板砖[0]
- 引用
- 举报
- 管理
- TOP
|
#2楼 得分:0回复于:2011-12-13 09:16:53
|
作者: dahuaixiaohuai 发布时间: 2011-12-13
我以前也没注意到这个问题,当把它应用到项目中去时才发现,会生成越来越多的重复信息。该如何解决呢?
望高手们指点,谢谢!
望高手们指点,谢谢!
作者: ddlddy 发布时间: 2011-12-13
高手们帮帮忙呀,难道你们没有遇到过类似的问题吗?
作者: fengbingchun 发布时间: 2011-12-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28