]
David Lloyd moved JBLOGGING-93 to LOGTOOL-84:
---------------------------------------------
Project: Log Tool (was: JBoss Logging)
Key: LOGTOOL-84 (was: JBLOGGING-93)
Affects Version/s: (was: 3.1.2.GA)
Component/s: (was: jboss-logging-spi)
Provide mechanism for preparing string representations of logged
objects
------------------------------------------------------------------------
Key: LOGTOOL-84
URL:
https://issues.jboss.org/browse/LOGTOOL-84
Project: Log Tool
Issue Type: Feature Request
Security Level: Public(Everyone can see)
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: