ICE内部的logger应用

        ICE为软件设计基础的日志功能,当我们的软件在后台运行需要保存这些日志,那么我们该怎么配置呢?下述内容将做简单解释:

1、Logger作为提供纯虚函数接口

class ICE_API Logger : virtual public ::Ice::LocalObject
{
public:

    typedef LoggerPtr PointerType;

    virtual void print(const ::std::string&) = 0;

    virtual void trace(const ::std::string&, const ::std::string&) = 0;

    virtual void warning(const ::std::string&) = 0;

    virtual void error(const ::std::string&) = 0;

    virtual ::Ice::LoggerPtr cloneWithPrefix(const ::std::string&) = 0;
};
2、LoggerI作为实现Logger纯虚函数接口
class LoggerI : public Logger
{
public:

    LoggerI(const string& prefix, const string& file);
    ~LoggerI();

    virtual void print(const std::string& message);
    virtual void trace(const std::string& category, const string& message);
    virtual void warning(const std::string& message);
    virtual void error(const std::string& message);
    virtual LoggerPtr cloneWithPrefix(const std::string&);
};
3、配置文件可以配置三种类型的日志

1)Ice.LogFile=a.txt

应用程序或通信管理器使用的日志。

2)Ice.StdOut=b.txt

控制台普通输出的日志,包括iostream的 cout或printf函数。

3)Ice.StdErr=c.txt

控制台错误输出的日志,包括iostream的 cerr。

4)Ice.ProgramName=demoserver.exe
Ice.ProgramName作为设置指定程序名称参数,否则将以默认的全路径程序名称。这个主要功能的影响在于Ice.LogFile输出程序名称。

4、范例

  Ice::Print

  Ice::Error

  Ice::Warning

  Ice::Trace

       上面的类简化了输出格式,具有鲜明的实现。如果您的系统需要实现如printf(int type, ...),那么您可以在现有的集成输出类上继承。   

    Ice::CommunicatorPtr ic = communicator();

    const Ice::LoggerPtr _logger = ic->getLogger();

    Ice::Error out1(_logger);
    out1 << "!!This is an error!\n";

    Ice::Warning out2(_logger);
    out2 << "-!This is a warning!\n";    

    Ice::Trace out3(_logger,  "title");
    out3 << "--This is a tracing!\n";

    _logger->print("liuxuezong");    
    _logger->warning("EntropyDaemon because OpenSSL initialization is disabled.");
    _logger->trace("This is my file!", "title");
    _logger->error("error!");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值