On Oct 4, 2009, at 1:53 PM, Jess Holle wrote:


Code using using org.apache.log4j.Logger would continue to work as is, ensuring backward compatibility, at least as far as the log4j signatures are concerned. Users who rely on the fact that the message argument was an Object instead of String would need to modify few lines of code. In the worst case, this change could cause loss of logging information but would NOT cause compile-time problems or issues related to method signatures.
This is a key ability in log4j, which I for one leverage to pass complex, structured data to specialized loggers, e.g. to dissect these structures and place various fields into separate relational database columns.

Losing first class access to such abilities is a non-starter.


The whole ObjectRenderer facility in log4j requires the ability to pass Object's as the first parameter. Anyone who used facility in the way that it was intended to be used would be broken if the first parameter was restricted to be only being a String. It may be okay to break some app that depended on an undocumented feature or used a feature in some way that was not intended, but removing an established facility in our documented public API being used the way that it was intended in a minor release without any deprecation cycle is a betrayal of trust. First priority in a minor release should be to do no harm, adding a new feature or even reinvigorating the project should not trump that.

I'd be willing to review any patch or branch that might be able to reconcile SLF4J and log4j without breaking compatibility, but every time I've tried I've run into unsurmountable obstacles. If it is easy and I've missed something in my attempts, I'm be happy to see the code that shows that I missed something.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to