[cocos2dx笔记006]流格式日志
版权声明:本文为博主原创文章,未经博主同意不得转载。
https://blog.csdn.net/zdhsoft/article/details/36001945
在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
然后在初始化的时候。就能够添加就能够了。#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换成新的锁类就能够了,通用库查看:我的开放代码
#if defined(OS_WINDOWS)
zdh::XLogEndFile * pLogEndFile = new zdh::XLogEndFile();
pLogEndFile->Init("erase.log");
ZDH_LOG_OBJECT->AddLogEnd(pLogEndFile);
#endif
STREAM_INFO << "hello cocos2dx";