在cocos2dx 2.2.2版本中,cocos使用的是CLOG写入日期,其格式是C的Printf方式生成日志。现在也有很多C++流式日志,类似于cout这样的操作。我看了也有很多,log4cxx,等。但是个人移动有些大。我就在我原来的日志中增加了对流式的支持。并顺利移植到cocos2dx环境中使用。下载是在cocos2dx使用的例子。
cocos2dx的日志端类:
#ifndef _X_COCOS2D_LOG_END_H_
#define _X_COCOS2D_LOG_END_H_
#include <xlog.h>
#include "platform/CCPlatformMacros.h"
namespace zdh
{
USING_NS_CC;
class XLogEndCocos2d : public XLogEndBase
{
public:
virtual void OutLog(int /*paramLogLevel*/, const XAnsiString & paramLog)
{
CCLOG("%s", paramLog.c_str());
}
};
}
#endif
然后在初始化的时候,就可以增加就可以了。
ZDH_LOG_OBJECT->AddLogEnd(new zdh::XLogEndCocos2d());
#if defined(OS_WINDOWS)
zdh::XLogEndFile * pLogEndFile = new zdh::XLogEndFile();
pLogEndFile->Init("erase.log");
ZDH_LOG_OBJECT->AddLogEnd(pLogEndFile);
#endif
STREAM_INFO << "hello cocos2dx";
目前这个是单线程的,如果支持多线程,只要参考XNullLock的定义一个锁类,然后把模板参数由XNullLock换成新的锁类就可以了,通用库查看:
我的开放代码