Nebula2探秘01-创建KernelServer&使用log
happykevins文

/**//****************************************************************************/
/**//*Nebula2-Tutorial01*/
/**//*创建KernelServer&使用log*/
/**//*author:happykevins*/
/**//****************************************************************************/

/**////----------------------------------------------------------------------------
///+必要头文件
#include"kernel/nkernelserver.h"
#include"kernel/nloghandler.h"
#include"kernel/nwin32loghandler.h"
/**////-必要头文件
///----------------------------------------------------------------------------

///----------------------------------------------------------------------------
///+链接库
///
///@wsock32.lib:nRemoteServer(nIpcServer)所需要的库
///nRemoteServer是对KernelServer进程间控制的接口
#pragmacomment(lib,"wsock32.lib")
/**////
///@d_nkernel.lib:nKernel的静态链接库,Debug版本
#pragmacomment(lib,"d_nkernel.lib")
/**////
///-链接库
///----------------------------------------------------------------------------

///----------------------------------------------------------------------------
///+Application
intmain(intargc,constchar**argv)
...{
/**////----------------------------------------------------------------------------
///+初始化KernelServer
///@note:
///1.虽然KernelServer可以作为Singleton全局访问,然而其生命周期还是需要访问者自己控制.
///2.使用者不必使用nNebulaUsePackage(nkernel)和AddPackage来包含添加包,Nebula2的KernelServer已经
///在创建时自动做好了这些事情.
///3.KernelServer在实例化后会在NOH系统中自动添加4个服务nFileServer2,nPersistServer,nRemoteServer
///和nTimeServer.所以这4个服务是使Nebula2的kernel能够顺利运行所必需的.
///以下是四个Server的NOH路径和用途简介:
///nFileServer2:"/sys/servers/file2"--文件服务
///nPersistServer:"/sys/servers/persist"--对象持久化服务
///nRemoteServer:"/sys/servers/remote"--远程控制服务(依赖ScriptServer)
///nTimeServer:"/sys/servers/time"--时间服务
///
nKernelServernkernel;
/**////-初始化KernelServer
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
///+使用KernelServer的当前日志系统记录日志
///@note:
///1.在Win32环境下可以使用nwin32loghandler来替代KernelServer默认的loghandler
///可以用KernelServer的SetLogHandler来替换.
///
//以下是对默认log系统的使用范例
nkernel.Print("logcommonmsg! ");
n_printf("logcommonmsg! ");
nkernel.Message("logimportantmsg! ");
n_message("logimportantmsg! ");
nkernel.Error("logerrormsg! ");
//n_error("logerrormsg! ");//executingthisline,appwillcrash
nkernel.Print(" PressAnyKey...");
#ifdef__WIN32__
//使用win32loghandler替换掉defaultloghandler
nWin32LogHandler*pWin32LogHandler=n_new(nWin32LogHandler("T01"));
nkernel.SetLogHandler(pWin32LogHandler);
//以下是对Win32log系统的使用范例
n_printf("logcommonmsg! ");
n_message("logimportantmsg! ");
n_dbgout("logdbgmsg!win32only! ");
//n_error("logerrormsg! ");//executingthisline,appwillcrash
#endif
/**////
///-使用KernelServer的当前日志系统记录日志
///----------------------------------------------------------------------------
getchar();
return0;
}
/**////-Application
///----------------------------------------------------------------------------
本文介绍了Nebula2框架下KernelServer的创建过程及日志系统的使用方法。通过示例代码展示了如何初始化KernelServer,并利用其内置的日志功能记录不同级别的日志信息。
439

被折叠的 条评论
为什么被折叠?



