Gunnar Morling created JBLOGGING-93:
---------------------------------------
Summary: Provide mechanism for preparing string representations of logged
objects
Key: JBLOGGING-93
URL:
https://issues.jboss.org/browse/JBLOGGING-93
Project: JBoss Logging
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: jboss-logging-spi
Affects Versions: 3.1.2.GA
Reporter: Gunnar Morling
Assignee: David Lloyd
There are cases where a fine-grained control of the string representation of logged
objects in log messages would be useful.
When logging {{Class}} objects for instance, we would like to see the fully-qualified name
of the given class in the log message. Currently we get _(class|interface) com.acme.Foo_,
though, as per the implementation of {{j.l.Class#toString()}}, which prepends the type of
the given class object.
As workaround, we currently define the log method to accept a String parameter and pass
{{myClass.getName()}} to it. Having a strongly typed log method which takes the
"real" object as parameter seems preferable, though.
A possible solution could be a mechanism which allows to register to-string converters for
given types with a logger:
{code}
//Provided by JBoss Logging API
public interface StringConverter<T> {
String createString(T object);
}
//A project-specific implementation
public class ClassStringConverter implements StringConverter<Class<?>> {
public String createString(Class<?> object) {
return object.getName();
}
}
//Project-specific logger, references 1..n converters
@MessageLogger(projectCode = "HV", converters=ClassStringConverter.class)
public interface Log extends BasicLogger {
//implementation uses converter to create string representation of given class
@LogMessage(level = INFO)
@Message(id = 1, value = "Illegal class %s")
void illegalClass(Class<?> clazz);
}
{code}
Would such a feature make sense to you?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira