ICE Manual(Documentation for Ice 3.5)---The Ice Run Time in Detail(Logger Facility)

来源:互联网 发布:网络成瘾综合症的危害 编辑:程序博客网 时间:2024/05/19 22:24

取决于各种属性的设置, Ice run time 会产生跟踪、警告,或错误消息。这些消息是通过Ice::Logger 接口输出的:

module Ice {    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);    };};
The cloneWithPrefix operation returns a new logger that logs to the same destination but with a different prefix. (The prefix is used to, for example, provide the name of the process writing the log messages.)


在你创建通信器时,会实例化一个缺省的日志记录器。缺省的日志记录器会记录标准的错误输出。除了错误消息以外, trace 操作还有一个category参数;这样,你可以把输出发给一个过滤器,把来自不同子系统的跟踪输出分开。你可以设置和获取与一个通信器相关联的日志记录器:
module Ice {
local interface Communicator {
void setLogger(Logger log);
Logger getLogger();
};
};
setLogger 操作为通信器安装一个不同的日志记录器。Ice run time 会缓存为通信器设置的日志记录器。 这意味着,在你创建了通信器之后,你应该设置一次日志记录器,然后就不再改变它了(如果你后来改变了日志记录器,有些消息会送往老日志记录器,有些会送往新记录器)。

getLogger 操作会返回当前的日志记录器。通过改变与通信器相关联的Logger 对象,你可以把Ice 消息集成进你自己的消息处理系统。例如,对于一个复杂的应用,你可能已经有了一个日志记录框架。要把Ice 消息集成进这个框架,你可以创建你自己的Logger实现,把消息送往已有的框架。


当你销毁通信器时,它的日志记录器不会被销毁。这意味着,你可以安全地使用某个日志记录器,即使是在它所关联的通信器的生命期之外。为方便起见, Ice 提供了两种针对特定平台的日志记录器:一种实现会把它的消息记录到Unix syslog 设施,另一种则会使用Windows 时间日志。要激活syslog 实现,你要设置Ice.UseSyslog 属性;要激活Windows 事件日志,你要设置Ice.UseEventLog 属性。在把日志消息发往日志子系统时,这两种实现都使用了Ice.ProgramName 属性的值来标识应用。

原创粉丝点击