/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_logging_XLogHandler_idl__ #define __com_sun_star_logging_XLogHandler_idl__ #ifndef __com_sun_star_lang_XComponent_idl__ #include #endif #ifndef __com_sun_star_logging_LogRecord_idl__ #include #endif #ifndef __com_sun_star_logging_XLogFormatter_idl__ #include #endif //============================================================================= module com { module sun { module star { module logging { //============================================================================= /** provides possibilites to send LogRecords to an arbitrary output channel. @see XLogger @since OOo 2.3 */ published interface XLogHandler { /** allows life time control for the handler

Disposing the handler effectively means closing the channel to which the handler forwards the log records. */ interface ::com::sun::star::lang::XComponent; /** specifies MIME charset name for the encoding to be used by this handler

It depends on the concrete handler implementation whether or not this parameter is needed.

@see http://www.iana.org/assignments/character-sets */ [attribute] string Encoding; /** specifies the formatter to be used by this handler. */ [attribute] XLogFormatter Formatter; /** specifies the log level of this handler

Different handlers can have different log levels, which again might be different from the log level of the XLogger for which the handlers are used.

*/ [attribute] long Level; /** flushes all buffered output of the handler

Log handlers are allowed to buffer their output. Upon flush being called, they must flush all their buffers.

*/ void flush(); /** publish the given log record at the handler's output channel. @return if and only if the record was actually published. A handler will not publish a record if its log level doesn't meet the handler's log level, if the record is filtered, or if any other handler-specified restrictions apply. */ boolean publish( [in] LogRecord Record ); }; //============================================================================= }; }; }; }; //============================================================================= #endif