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")
/**////
/// -链接库
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +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
///----------------------------------------------------------------------------
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。