Marius,
The change has not been applied nor is it likely to be. One alternative to re-applying
the patch for all future log4j version is to sub-class the Category class and
introducing a new method that returns the results of the message localization.
There have been several complaints about the way log4j does localization. I am not
satisfied with it either. There is a good chance that future versions will let
appenders/layouts see the message localization key and parameters within the
LoggingEvent instance. It will be up to the appender or layout to select which
resource bundle to apply on a message key. Thus, you should be able to control/view
the localized message if you need to. Would that help at all? Regards, Ceki
ps: I am CCing the log4j-user list to see if other users would like to have the
functionality that you mentioned. If enough users ask for it, then we will reconsider.
At 09:08 08.03.2001 -0500, Marius S. Lazer wrote:
>Ceki,
>
>I applied the change, but I didn't see it in 1.0.4 (I had to re-apply it) or in the
>upcoming 1.1. Will it be officially applied or do I have to apply it on all releases
>myself?
>
>Thanks,
>Marius S. Lazer
>Lucent Technologies
>
>-----Original Message-----
>From: Ceki Gulcu [mailto:[EMAIL PROTECTED]]
>Sent: Friday, December 01, 2000 9:59 AM
>To: [EMAIL PROTECTED]
>Cc: [EMAIL PROTECTED]
>Subject: Re: l7dlog enhancement
>
>
>Hi Marius,
>
>It is certainly possible for l7dlog to return the result of MessageFormat . As in:
>
> public
> String l7dlog(Priority priority, String key, Throwable t) {
> if(disable <= priority.value) {
> return null; // we can't return a value we don't compute
> }
> if(priority.isAsSevereAs(this.getChainedPriority())) {
> String msg = getResourceBundleString(key);
> // if message corresponding to 'key' could not be found in the
> // resource bundle, then default to 'key'.
> if(msg == null) {
> msg = key;
> }
> callAppenders(new LoggingEvent(instanceFQN, this, priority, msg, t));
> }
> return msg; //
> }
>
> public
> String l7dlog(Priority priority, String key, Object[] params, Throwable t) {
> if(disable <= priority.value) {
> return;
> }
> if(priority.isAsSevereAs(this.getChainedPriority())) {
> String pattern = getResourceBundleString(key);
> String msg;
> if(pattern == null)
> msg = key;
> else
> msg = java.text.MessageFormat.format(pattern, params);
> callAppenders(new LoggingEvent(instanceFQN, this, priority, msg, t));
> }
> return msg;
> }
>
>Would the above changes meet your needs?
>
>The other method such as debug, warn etc. cannot return the value of what they log
>because a message can be logged using multiple appenders and layouts.
>
>
>What do you mean by additional public methods? What do you have in mind?
>
>May I ask you why you need to know the value of what is being logged? Cheers, Ceki
>
>At 09:42 01.12.2000 -0500, Marius S. Lazer wrote:
>>Ceki,
>>
>>Overall, we're very satisfied with the package with the exception of one thing:
>there is no way to get the expanded message that l7dlog() formats unless we do again
>the equivalent of the protected getResourceBundleString() and then call MessageFormat
>again. The proposed enhancement is either one of the following:
>> * have l7dlog() return the String it logs (it might be a good idea for all
>logging methods except debug() to return what they log)
>> * additional public methods to expand the message l7dlog() logs
>>In the mean time I'll make the change myself, but it would be nice to have this in
>the standard distribution.
>>
>>Thanks,
>>Marius S. Lazer - Lucent Technologies
>><mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]