/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ #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 */ 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 `TRUE` 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 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */