Package net.sf.basedb.util.extensions
Class LoggingErrorHandlerFactory
java.lang.Object
net.sf.basedb.util.extensions.LoggingErrorHandlerFactory
- All Implemented Interfaces:
ErrorHandler<Action>
,ErrorHandlerFactory<Action>
- Direct Known Subclasses:
RethrowErrorHandlerFactory
public class LoggingErrorHandlerFactory
extends Object
implements ErrorHandlerFactory<Action>, ErrorHandler<Action>
Exception handler factory implementation that logs error messages
using the default logging mechanism. This factory is it's own
error handler and the implementation is thread-safe (once the level
has been set).
- Since:
- 2.17
- Author:
- Nicklas
- Last modified
- $Date: 2015-04-20 11:08:18 +0200 (må, 20 apr 2015) $
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Log level implementations for slf4j. -
Field Summary
Modifier and TypeFieldDescriptionprivate LoggingErrorHandlerFactory.Level
private static final Logger
private boolean
-
Constructor Summary
ConstructorDescriptionCreate a new error-level loggin error handler factory.LoggingErrorHandlerFactory
(String level) Create a new custom-level logging error handler factory. -
Method Summary
Modifier and TypeMethodDescriptiongetErrorHandler
(InvokationContext<? extends Action> context) Get an error handler for the current context.void
handleError
(InvokationContext<? extends Action> context, Action action, String message, Throwable t) Handle an exception that has happened.void
Set the level of the error handler.void
setRememberLast
(String remember) Set a flag indicating if errors should be remembered by the registry.
-
Field Details
-
log
-
level
-
rememberLast
private boolean rememberLast
-
-
Constructor Details
-
LoggingErrorHandlerFactory
public LoggingErrorHandlerFactory()Create a new error-level loggin error handler factory. -
LoggingErrorHandlerFactory
Create a new custom-level logging error handler factory.
-
-
Method Details
-
getErrorHandler
Description copied from interface:ErrorHandlerFactory
Get an error handler for the current context. This method is called once for each request/use of an extension point. Errors that happen when processing things related to this extension point will be directed to the error handler returned by this method. The factory may create a new or it may re-use the same error handler for each request. If the error handler is re-used it must be thread-safe.- Specified by:
getErrorHandler
in interfaceErrorHandlerFactory<Action>
- Parameters:
context
- The current invokation context which is an extension point context (theInvokationContext.getExtension()
method is expected to return null)
-
handleError
public void handleError(InvokationContext<? extends Action> context, Action action, String message, Throwable t) Description copied from interface:ErrorHandler
Handle an exception that has happened. It is up to the error handler what should happen next. Typically, error should always be logged but the error handler may choose to re-throw the exception. If the exception isn't already a runtime exception it must be wrapped.Note that there are three stages in the extension mechanism, which may cause some of the parameters to be null:
- Extension point intialization: Eg. when the render factory is being prepared (context and action are both null)
- Extension intialization: Eg. when the action factory is being prepared (action is null)
- Extension rendering: Eg. when rendering the actions of a single extension (context and action are non-null)
- Specified by:
handleError
in interfaceErrorHandler<Action>
- Parameters:
context
- The extension context, which can be nullaction
- The action that was being rendered when the error happened, which can be nullmessage
- An optional error messaget
- The error
-
setLevel
Set the level of the error handler. -
setRememberLast
Set a flag indicating if errors should be remembered by the registry. The last error for an extension or extension point can be retreived by callingRegistry.getLastExtensionError(String)
and/orRegistry.getLastExtensionPointError(String)
.- Parameters:
remember
- A string that evaluates to a boolean
-