Nebula2探秘01-创建KernelServer&使用log
happykevins文
/**//****************************************************************************//**//* Nebula2 - Tutorial 01 *//**//* 创建KernelServer & 使用log *//**//* author: happykevins *//**//****************************************************************************//**////----------------------------------------------------------------------------/// +必要头文件#include "kernel/nkernelserver.h"#include "kernel/nloghandler.h"#include "kernel/nwin32loghandler.h"/**//// -必要头文件///----------------------------------------------------------------------------///----------------------------------------------------------------------------/// +链接库////// @wsock32.lib: nRemoteServer(nIpcServer)所需要的库/// nRemoteServer是对KernelServer进程间控制的接口#pragma comment(lib, "wsock32.lib")/**/////// @d_nkernel.lib: nKernel的静态链接库,Debug版本#pragma comment(lib, "d_nkernel.lib")/**/////// -链接库///----------------------------------------------------------------------------///----------------------------------------------------------------------------/// +Applicationint main(int argc, const char** 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" --时间服务 /// nKernelServer nkernel; /**//// -初始化KernelServer ///---------------------------------------------------------------------------- ///---------------------------------------------------------------------------- /// +使用KernelServer的当前日志系统记录日志 /// @note: /// 1. 在Win32环境下可以使用nwin32loghandler来替代KernelServer默认的loghandler /// 可以用KernelServer的SetLogHandler来替换. /// // 以下是对默认log系统的使用范例 nkernel.Print("log common msg! "); n_printf("log common msg! "); nkernel.Message("log important msg! "); n_message("log important msg! "); nkernel.Error("log error msg! "); //n_error("log error msg! "); // executing this line, app will crash nkernel.Print(" Press Any Key...");#ifdef __WIN32__ // 使用win32loghandler替换掉defaultloghandler nWin32LogHandler* pWin32LogHandler = n_new(nWin32LogHandler("T01")); nkernel.SetLogHandler(pWin32LogHandler); // 以下是对Win32 log系统的使用范例 n_printf("log common msg! "); n_message("log important msg! "); n_dbgout("log dbg msg! win32 only! "); //n_error("log error msg! "); // executing this line, app will crash#endif /**//// /// -使用KernelServer的当前日志系统记录日志 ///---------------------------------------------------------------------------- getchar(); return 0;}/**//// -Application///----------------------------------------------------------------------------