在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換成新的鎖類就可以了,通用庫查看:
我的開放代碼