diff options
Diffstat (limited to '')
-rw-r--r-- | offapi/com/sun/star/logging/XLogger.idl | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/offapi/com/sun/star/logging/XLogger.idl b/offapi/com/sun/star/logging/XLogger.idl new file mode 100644 index 000000000..5ee092287 --- /dev/null +++ b/offapi/com/sun/star/logging/XLogger.idl @@ -0,0 +1,136 @@ +/* -*- 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_XLogger_idl__ +#define __com_sun_star_logging_XLogger_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module logging { + +interface XLogHandler; + + +/** implemented by a component which is able to log events. + + <p>This interface is roughly designed after the + <a href="http://java.sun.com/javase/6/docs/api/java/util/logging/package-summary.html">Java + Logging API</a>. However, there are some differences, the major ones being: + <ul><li>There's no support (yet) for filtering log events.</li> + <li>There ain't no convenience methods for logging.</li> + <li>There's no localization support.</li> + <li>Logger instances do not form a hierarchy.</li> + </ul></p> + + @since OOo 2.3 + */ +interface XLogger +{ + /** denotes the name of the logger. + */ + [attribute, readonly] string Name; + + /** specifies which log events are logged or ignored. + + @see LogLevel + */ + [attribute] long Level; + + /** adds the given handler to the list of handlers. + + <p>When an event is logged, the logger will create a LogRecord + for this event, and pass this record to all registered handlers. Single handlers + might or might not log those records at their own discretion, and depending on + additional restrictions such as filters specified at handler level.</p> + + <p>Note: The log level of the given handler (XLogHandler::Level) will + not be touched. In particular, it will not be set to the logger's log level. It's + the responsibility of the component which knits a logger with one or more + log handlers to ensure that all loggers have appropriate levels set.</p> + + @param LogHandler + the handler to add to the list of handlers. The call is ignored if this + parameter is `NULL`. + */ + void addLogHandler( [in] XLogHandler LogHandler ); + + /** removes the given handler from the list of handlers. + + @param LogHandler + the handler to remove from the list of handlers. The call is ignored if this + parameter is `NULL`, or if the handler has not previously been added. + */ + void removeLogHandler( [in] XLogHandler LogHandler ); + + /** determines whether logger instance would produce any output for the given level. + + <p>The method can be used to optimize performance as maybe complex parameter evaluation + in the <code>log</code> calls can be omitted if <code>isLoggable</code> evaluates to false.</p> + + @param Level + level to be checked against + + @returns + `TRUE` if there would be some output for this XLogger for the given level, `FALSE` + otherwise. Note that a return value of `FALSE` could also indicate that the logger + does not have any log handlers associated with it. + + @see addLogHandler + @see removeLogHandler + */ + boolean isLoggable( [in] long Level ); + + /** logs a given message + + @param Level + the log level of this message. If this level is smaller than the logger's #Level + attribute, then the call will be ignored. + + @param Message + the message to log + */ + void log( [in] long Level, [in] string Message ); + + /** logs a given message, detailing the source class and method at which the logged + event occurred. + + @param Level + the log level of this message. If this level is smaller than the logger's #Level + attribute, then the call will be ignored. + + @param SourceClass + the source class at which the logged event occurred. + + @param SourceMethod + the source class at which the logged event occurred. + + @param Message + the message to log + */ + void logp( [in] long Level, [in] string SourceClass, [in] string SourceMethod, [in] string Message ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |