[cocos2dx笔记006]流格式日志

在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换成新的锁类就可以了,通用库查看:我的开放代码

[cocos2dx笔记006]流格式日志

时间: 2024-07-30 09:29:02

[cocos2dx笔记006]流格式日志的相关文章

[cocos2dx笔记012]一定简易的UI配置类

使用cocostudio可以装载编辑好的UI,但是过于复杂.特别是在加截UI后,发现触屏事件有些问题.如果直接使用程序写死加载UI又过于麻烦.花点时间,增加了一个基于ini的UI配置类,目前只实现了CCSprite和plist的加载.其它的可以后面慢慢加 头文件 #ifndef _X_UI_H_ #define _X_UI_H_ #include <cocos2d.h> namespace zdh { USING_NS_CC; void CreateByXUI(CCNode * paramPa

cocos2d-x笔记4: TextField不能删除内容,以及我的解决办法。。。

3.0正式版,win32下,TextField按下backspace键不能删除内容.网上搜了下,很早就有的问题了,正式版了竟然还不解决...真心无力吐槽啊!!!这种巨大而又明显的Bug... 从昨天突发奇想用Cocos2d做软件开始,经历了太多的摧残,简直听者伤心,闻者落泪... 已经去Cocoachina论坛反馈了,虽然基本白费口舌...思路就是监听按键事件,调用setText修改内容... 1 auto listener = EventListenerKeyboard::create();

cocos2d-x笔记3 : 3.0正式版调用CocoStudio

cocos2d已经有一万个新建工程的方式和一万个API改动了,而且相互不兼容...触控科技的程序员真心不怕被打哦... 网上搜到的做法大多已经不行了,原因在上一段哦... 同样都是3.0,Alpha版.Bata版.Rc版.正式版,它们调用CocoStudio的方法都不一样哦...(求超越哦...) 记录一下3.0正式版使用CocoStudio的方法,是正式版,也就是最新版哦.(当然,只相对本周而言哦...) 一.添加库: 1.右击解决方案 -> 添加 -> 现有项目 2.进入项目目录的coco

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题.无奈只好Google百度寻求答案,明白了这个问题的缘由.因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码. 解决这个问题有三种办法: 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来

Cocos2d-x 3.1.1 学习日志3--C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员

有关const成员.static成员.const static成员的初始化: 1.const成员:只能在构造函数后的初始化列表中初始化 2.static成员:初始化在类外,且不加static修饰 3.const static成员:类只有唯一一份拷贝,且数值不能改变.因此,可以在类中声明处初始化,也可以像static在类外初始化 #include <iostream> using std::cout; using std::endl; class base { public: base(int

[cocos2dx笔记008]cocos2d 用luabridge手动绑定类

基于cocos2dx 2.2.2版本.这几天使用了cocostudio实现了,动画,骨骼动画,UI编辑,粒子效果,虽然有些不足,但已经算是非常好了.今天尝试用lua,这个非常简单,创建的时候,设置语言为lua,那就可以创建lua工程. 在cocos2d-x-2.2.2\tools\project-creator下运行: python create_project.py -project test_lua -package com.android.zdhsoft -language lua xco

Cocos2d-x 3.1.1 学习日志11--一Windows下Android环境搭建(一定对你有用的!!)

安装步骤::(多么痛的领悟!!) 1. 配置JDK JDK下载地址: 设置环境变量: JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_21 CLASSPATH=.;%JAVA_HOME%\lib; Path增加%JAVA_HOME%\bin; 设置完后打开cmd,输入java -version 如果出现下面提示,表明环境变量设置成功: C:\Users\arlin>java -version java version "1.7.0_21&quo

Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性

新的关键字 auto C++11中引入auto第一种作用是为了自动类型推导 auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型.通过auto的自动类型推导,可以大大简化我们的编程工作.auto实际上实在编译时对变量进行了类型推导,所以不会对程序的运行效率造成不良影响.另外,似乎auto并不会影响编译速度,因为编译时本来也要右侧推导然后判断与左侧是否匹配.如果没有auto关键字 写个迭代器要写很长长,这也算是节省了我们的脑细胞吧,~~~~(>_<)~~~~ !! auto a; /

postgresql数据库配置csv格式日志输出

postgresql数据库配置csv格式日志输出 下面介绍postgresql数据库中关于csv格式日志(pg中一种比较详细的日志输出方式)的设置方法. 1.进入$PGDATA目录(pg的安装目录,根据具体情况名称有所区别)下找到配置文件postgresql.conf 2.开启csvlog输出功能: #开启csvlog输出功能(默认为off) logging_collector = on 注:修改完logging_collector后需要重启数据库(当然你也可以继续配置,在所有配置都完成后再重启