您的位置:首页 > 其它

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

2008-04-10 19:25 309 查看
Nebula2探秘01-创建KernelServer&使用loghappykevins文



/**//****************************************************************************/




/**//*    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")




/**////


/// -链接库


///----------------------------------------------------------------------------






///----------------------------------------------------------------------------


/// +Application


int 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


///----------------------------------------------------------------------------


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: