/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_logging_XLogHandler_idl__ #define __com_sun_star_logging_XLogHandler_idl__ #include #include #include //============================================================================= module com { module sun { module star { module logging { //============================================================================= /** provides possibilities 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