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")/**///////-链接库///----------------------------------------------------------------------------///----------------------------------------------------------------------------///+Applicationintmain(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,appwillcrashnkernel.Print(" PressAnyKey...");#ifdef__WIN32__//使用win32loghandler替换掉defaultloghandlernWin32LogHandler*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///----------------------------------------------------------------------------