ICE的日志和统计接口

原创 2012年03月30日 22:12:06
1、获取日志对象:
   virtual LoggerPtr getLogger() const;
2、日志对象提供的方法:
   local interface Logger
   {
        void print(string message);
        void trace(string category, string message);
        void warning(string message);
        void error(string message);
        Logger cloneWithPrefix(string prefix);
    };
3、communicator提供的默认日志接口是打屏的,可以通过如下方法定制日志接口:
   Ice::InitializationData id;
   id.logger = new MyLoggerI();
   Ice::Communicator ic = Ice::Initiliaze(argc, argv, id);
4、也可以通过插件设置日志
   class MyLoggerI : public Ice::Logger
   {
   public:
        void print(string message);
        void trace(string category, string message);
        void warning(string message);
        void error(string message);
        Logger cloneWithPrefix(string prefix);
   };
   extern "C"
   {
   ICE_DECLSPEC_EXPORT Ice::Plugin* createLogger(const Ice::Communicator& ic, const std::string& name, 
                                                 const Ice::StringSeq& args)
{
   Ice::LoggerPtr logger = new MyLoggerI();
return new Ice::LoggerPlugin(ic, logger);
}
   }
   编译成动态库libmylogger.so
   配置属性:Ice.Plugin.MyLogger = mylogger::createLogger
4、ICE提供了一系列的工具类来处理日志:Ice::Error、Ice::Warning、Ice::Trace、Ice::Print
    Ice::Error err(communicator->getLogger());
err<<"This is error "<<myErrorString;
5、ICE提供了统计接口用来统计网络流量,具体的接口使用如下:
   local interface stats
   {
        void bytesSent(std::string& protocol, Ice::Int num);
void bytesReceived(std::string& protocol, Ice::Int num);
    };  
   Ice::InitializationData id;
   id.stats = new MyStatsI();
   Ice::Communicator ic = Ice::Initiliaze(argc, argv, id);
   

ICE 的常见运行错误

在编译和 Ice 应用相关的文件中,经常因为 ice 相关的文件包含关系而导致编译无法通过,此时的错误一般提示和 handle.h 相关。然而想要解决这样的错误,一般只需要把在无法编译成 .o 文件的...
  • educast
  • educast
  • 2013年07月19日 11:18
  • 4104

ICE内部的logger应用

ICE为软件设计 class ICE_API Logger : virtual public ::Ice::LocalObject { public:     typedef ...
  • liuxuezong
  • liuxuezong
  • 2014年07月03日 20:29
  • 925

ice替换log

1.实现Ice.Logger package com.djl; import org.slf4j.LoggerFactory; import Ice.Logger; public class ...
  • qq_31678877
  • qq_31678877
  • 2016年11月15日 17:49
  • 332

1 zero ice 初步学习

1、ICE是什么?  ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个面向对象的中间件,使我们...
  • xiaoliuliu2050
  • xiaoliuliu2050
  • 2016年11月23日 11:44
  • 1487

zeroc ice 客户端与服务端通信例子(c++)

zeroc ice 客户端与服务端通信例子(c++) 参考 :http://blog.csdn.net/qingen1/article/details/13052139 以及官方文档【Ice 分布式程...
  • launch_225
  • launch_225
  • 2017年07月06日 14:34
  • 743

《ZeroC Ice 权威指南》笔记

Ice介绍         Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通...
  • Jerome_s
  • Jerome_s
  • 2016年03月07日 19:25
  • 9001

ICE专题:使用C#编写ICE分布式应用程序

ICE专题:使用C#编写ICE分布式应用程序 (2012-07-23 19:29:28) 转载▼ 标签: 杂谈 分类: ICE学习笔记 C#开发...
  • zb872676223
  • zb872676223
  • 2013年07月18日 18:12
  • 2449

ICE学习(八)-异步方法调用AMI

Asynchronous Method Invocation (AMI)是客户端的异步编程模型。和同步请求不同,AMI不会堵塞他所在的线程。对于服务器端来说,同步和异步请求是没有什么区别的。 基本...
  • kaede999
  • kaede999
  • 2015年10月23日 17:04
  • 1132

在python中实现基于ICE框架的client、server模型

ICE (Internet Communication Engine) 是zeroc公司实现的通信中间件 几大特性:     1. 多语言支持C++、Java、python, C#等, ...
  • yuchen162009
  • yuchen162009
  • 2015年04月17日 16:15
  • 1750

ICE同步调用与异步调用(1)

1 前言          软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用(...
  • liuxuezong
  • liuxuezong
  • 2014年06月06日 21:09
  • 6433
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ICE的日志和统计接口
举报原因:
原因补充:

(最多只允许输入30个字)