zdhsoft 阅读(268) 评论(0)
在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换成新的锁类就可以了,通用库查看:我的开放代码