/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.eventlog; /** * Interface of common RCE event log operations. Subinterfaces may extend these with * context-specific operations. * * @author Robert Mischke * */ public interface EventLogger { /** * Logs an error event, similar to {@link Log#error(Object)}. In contrast to warnings, errors * should always indicate an operation that failed unexpectedly. * * @param localized true if the given message should be treated as a message id; false, if it is * a non-localized message * @param message the message or message id to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void error(boolean localized, String message, Object... parameters); /** * Logs an error event with detail information, similar to {@link Log#error(Object, Throwable)}. * In contrast to warnings, errors should always indicate an operation that failed unexpectedly. * * @param detailInformation the detailed technical reason for the error, ie the underlying * {@link Throwable} * @param localized true if the given message should be treated as a message id; false, if it is * a non-localized message * @param message the message or message id to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void error(Throwable detailInformation, boolean localized, String message, Object... parameters); /** * Logs a warning, similar to {@link Log#warn(Object)}. In contrast to errors, warnings should * indicate an abnormal situation that did not result in an unrecoverable error. * * @param localized true if the given message should be treated as a message id; false, if it is * a non-localized message * @param message the message or message id to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void warn(boolean localized, String message, Object... parameters); /** * Logs a warning with detail information, similar to {@link Log#warn(Object, Throwable)}. In * contrast to errors, warnings should indicate an abnormal situation that did not result in an * unrecoverable error. * * @param detailInformation the detailed technical reason for the error, ie the underlying * {@link Throwable} * @param localized true if the given message should be treated as a message id; false, if it is * a non-localized message * @param message the message or message id to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void warn(Throwable detailInformation, boolean localized, String message, Object... parameters); /** * Logs an informational message, similar to {@link Log#info(Object)}. As "info" messages should * never reflect errors, there is no equivalent method with an additional {@link Throwable} * parameter. * * @param localized true if the given message should be treated as a message id; false, if it is * a non-localized message * @param message the message or message id to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void info(boolean localized, String message, Object... parameters); /** * Logs an internal debug message. As debug messages are aimed at developers instead of end * users, they are not localized. * * @param message the message to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void debug(String message, Object... parameters); /** * Logs an internal debug message with detail information. As debug messages are aimed at * developers instead of end users, they are not localized. * * @param detailInformation the detailed technical reason for the error, ie the underlying * {@link Throwable} * @param message the message to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void debug(Throwable detailInformation, String message, Object... parameters); /** * Logs a fine-grained internal debug message, similar to the "trace" level of some logging * frameworks. Unlike "debug" messages, which are always stored, these "verbose debug" messages * may be discarded, depending on configuration values. * * Note: For performance reasons, callers should check {@link #isDebugVerboseEnabled()} first, * and only make the actual verbose log calls if it returned "true". * * @param message the message to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void debugVerbose(String message, Object... parameters); /** * Logs a fine-grained internal debug message with detail information, similar to the "trace" * level of some logging frameworks. Unlike "debug" messages, which are always stored, these * "verbose debug" messages may be discarded, depending on configuration values. * * Note: For performance reasons, callers should check {@link #isDebugVerboseEnabled()} first, * and only make the actual verbose log calls if it returned "true". * * @param detailInformation the detailed technical reason for the error, ie the underlying * {@link Throwable} * @param message the message to display; messages can contain * {@link String#format(String, Object...)} placeholders for the given parameters * @param parameters the parameters to insert into the given message, or the message resolved * from the given message id if localization is enabled */ void debugVerbose(Throwable detailInformation, String message, Object... parameters); /** * Returns whether verbose debug logging is enabled or not. Allows clients to skip verbose * logging operations to improve performance. * * @return true if verbose logging is enabled */ boolean isDebugVerboseEnabled(); }