现在的位置: 首页 > 综合 > 正文

Ogre日志

2017年11月02日 ⁄ 综合 ⁄ 共 2436字 ⁄ 字号 评论关闭
文章目录

http://blog.csdn.net/pizi0475/article/details/5451267

me:注意代码部分有改动

日志管理

用文件来记录Ogre系统初始化、运行、结束以及调试信息。使用日志便于我们调试程序。

日志系统的组成

Ogre日志系统由两个类组成:Log类与LogManager。下面我们分别来看这两个类。

Log类

代表用于记录信息的日志。Log类的一个对象对应于一个日志文件。

Log类提供了向日志文件写信息的函数logMessage,其定义如下:

    void logMessage(const String& message, LogMessageLevel lml = LML_NORMAL);

              参数message,String类型的变量,存储要写入的信息。

              参数lml,指定传入信息的级别,来衡量一条信息的重要程度。        

参数值

信息的重要程度

LML_TRIVIAL

最低

LML_NORMAL

一般

LML_CRITIAL

最高

 

为了判断一条信息的重要性,从而决定是否将该信息写入日志文件。我们不光要衡量信息的重要程度,还应该同时考虑日志文件的重要程度。Log类提供了一个函数setLogDetail来设置日志文件的重要程度,其定义如下:

    void setLogDetail(LoggingLevel ll);

              参数ll,指定该日志文件的级别,来衡量日志文件的重要程度。

 

参数值

代表日志文件的重要程度

LL_LOW

最低

LL_NORMAL

一般

LL_BOREME

最高

LogManager类

管理所有Log类的对象,也就是管理所有的日志文件。并负责向日志文件中输出信息。

LogManager类提供了创建Log对象的成员函数createLog。

注意,不要用Log类直接创建对象,而要用LogManager的createLog函数来创建Log对象。因为这保证了:使LogManager维护所有的Log对象,通过LogManager可以方便地进行查找等操作。createLog定义如下:

 Log* createLog( const String& name, bool defaultLog = false, bool debuggerOutput = true );

     参数name是String类型的,它指定所创建日志文件的文件名,如Ogre.log。

     参数defaultLog是布尔类型的,如果为true,则把当前创建的日志文件设置为LogManager默认的日志文件。调用LogManager的接口函数都对此文件生效。

     参数debuggerOutput是布尔类型的,如果为true,则不只向日志文件中输出信息,还向调试窗口中输出信息。

成员函数

     成员函数getLog可以通过文件名得到其代表的Log对象。它的定义如下:

     Log* getLog( const String& name);

     参数name指定了要查找的日志文件名。

 

     设置默认Log文件级别的成员函数:

     void setLogDetail(LoggingLevel ll);

     参数ll指定默认日志文件的重要程度,它可以是:

 

参数值

信息的重要程度

LML_TRIVIAL

最不重要

LML_NORMAL

一般

LML_CRITIAL

最重要

 

     成员函数getDefaultLog返回默认的Log对象

     Log* getDefaultLog();

 

     成员函数logMessage向默认的日志文件中写入信息,它有两种形式:

     void logMessage( const String& message, LogMessageLevel lml = LML_NORMAL);

     void logMessage( LogMessageLevel lml, const char* szMessage, ... );

     参数lml指定传入的信息的重要程度。

     第一个logMessage可以向日志文件中写入一条信息。第二个logMessage可以写入接收的多条信息。

日志系统的使用举例

程序概述

重载ExampleApplication内的createScene函数,在函数内创建一个名为Test.log的日志文件,并向该文件中写入一段信息。

代码

#include "LogManager.h"
using namespace NASA;

LogManager logMgr;
void main()
{
	//if(LogManager::getSingletonPtr() == 0)
	//{
		//mLogManager = OGRE_NEW LogManager();
		//mLogManager->createLog(logFileName, true, true);
	//}
	
	Log *p_Log = LogManager::getSingleton().createLog( "test.log" );
	p_Log->logMessage( "I write a message to test.log" );
}

     me:我从ogre中分离出其日志管理系统。可以从我的资源中下载到。

     在createScene函数中,首先调用LogManager的createLog成员函数来创建一个名为test.log的日志文件,并用p_Log保存此日志文件的指针。然后,我们通过Log的成员函数logMessage向test.log中写入一句话。

     执行一遍程序后,你会发现程序可执行文件所在的目录下多了一个名为test.log的文件,接着打开test.log,你会看见一行字:I write a message to test.log。

当然,这个程序所做的并没有什么意义。它的目的只是演示一下Ogre日志系统的使用方法,

 

关于Ogre日志系统的应用,在下一部分异常处理中还有介绍。

抱歉!评论已关闭.