r500399 | eross | 2007-01-26 17:08:40 -0600 (Fri, 26 Jan 2007) | 2 lines

Bug 23202 - l7dlog() methods do not support FQCN of wrapper classes.
Add method to supply FQCN, Add tests


Index: src/java/org/apache/log4j/Category.java
===================================================================
1073,1087c1073
<     if (repository.isDisabled(level.level)) {
<       return;
<     }
<
<     if (level.isGreaterOrEqual(this.getEffectiveLevel())) {
<       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;
<       }
<
<       forcedLog(FQCN, level, msg, t);
<     }
---
>     l7dlog(level, key, null, t);
1101,1103c1087
<     if (repository.isDisabled(level.level)) {
<       return;
<     }
---
>     l7dlog(FQCN, level, key, params, t);
1105,1116d1088
<     if (level.isGreaterOrEqual(this.getEffectiveLevel())) {
<       String pattern = getResourceBundleString(key);
<       String msg;
<
<       if (pattern == null) {
<         msg = key;
<       } else {
<         msg = java.text.MessageFormat.format(pattern, params);
<       }
<
<       forcedLog(FQCN, level, msg, t);
<     }
1181a1154,1189
> * This is the most generic localized printing method. It is intended to be invoked by
>    * <b>wrapper</b> classes.
>    *
>    * @param callerFQCN The wrapper class' fully qualified class name.
>    * @param level The level of the logging request.
>    * @param key The key of the resource bundle message.
>    * @param param Format parameteres, if null will not be used.
>    * @param t The throwable of the logging request, may be null.
>    *
>    * @since 1.3
>    */
>   public void l7dlog(
> String callerFQCN, Priority level, String key, Object[] params, Throwable t)
>   {
>     if (repository.isDisabled(level.level)) {
>       return;
>     }
>
>     if (level.isGreaterOrEqual(this.getEffectiveLevel())) {
>       String pattern = getResourceBundleString(key);
>       String msg;
>
>       if (pattern == null) {
>         msg = key;
>       } else {
>         if (params != null)
>           msg = java.text.MessageFormat.format(pattern, params);
>         else
>           msg = pattern;
>       }
>
>       forcedLog(callerFQCN, level, msg, t);
>     }
>   }
>
>   /**
Index: tests/src/java/org/apache/log4j/CategoryTest.java
===================================================================
20a21
> import java.io.StringWriter;
21a23,26
> import java.util.Locale;
> import java.util.ResourceBundle;
>
> import org.apache.log4j.spi.LoggingEvent;
38a44,62
>   StringWriter sw = new StringWriter();
>   Priority debug = Level.DEBUG;
>   Logger logger = Logger.getLogger("org.example.foo");
>
>   protected void setUp() {
>     WriterAppender a = new WriterAppender();
>     a.setWriter(sw);
>     a.setLayout(new PatternLayout("%m "));
>     a.activateOptions();
>     BasicConfigurator.configure(a);
>     Category.getRoot().setLevel(Level.ALL);
>     Category.getRoot().setResourceBundle(getTestBundle());
>     logger.setLevel(Level.ALL);
>   }
>
>   static ResourceBundle getTestBundle() {
>     return ResourceBundle.getBundle("L7D", new Locale("en", "US"));
>   }
>
62,65c86,87
<     Logger logger = Logger.getLogger("org.example.foo");
<     logger.setLevel(Level.ERROR);
<     Priority debug = Level.DEBUG;
<     logger.l7dlog(debug, "Hello, World", null);
---
>     logger.l7dlog(debug, "test", null);
> assertEquals("This is the English, US test.", sw.toString ().trim());
69c91
<    * Tests l7dlog(Priority, String, Object[], Throwable).
---
>    * Tests l7dlog(Priority, String, Throwable) no resource.
71,72c93,101
<   public void testL7dlog4Param() {
<     Logger logger = Logger.getLogger("org.example.foo");
---
>   public void testL7dlogNoResource() {
>     logger.l7dlog(debug, "XYZ", null);
> assertEquals("No resource is associated with key \"XYZ\". XYZ ", sw.toString());
>   }
>
>   /**
>    * Tests l7dlog(Priority, String, Throwable) log nothing.
>    */
>   public void testL7dlogNothing() {
74,75c103,126
<     Priority debug = Level.DEBUG;
<     logger.l7dlog(debug, "Hello, World", new Object[0], null);
---
>     logger.l7dlog(debug, "msg1", null);
>     assertEquals("no logging", "", sw.toString());
>   }
>
>   /**
>    * Tests l7dlog(FQN, Priority, String, Object[], Throwable) log.
>    */
>   public void testL7dlogFormat() {
>     Object o[] = new Object[] { new Integer(1), "X" };
>     logger.l7dlog(debug, "msg1", o, null);
> assertEquals("This is test number 1 with string argument X. ", sw.toString());
>   }
>
>   /**
>    * Tests l7dlog(FQN, Priority, String, Object[], Throwable) log.
>    * @since 1.3
>    */
>   public void testL7dlogFQN() {
>     VectorAppender va = new VectorAppender();
>     logger.addAppender(va);
> logger.l7dlog("myFQN", debug, "msg1", new Object[0], new Throwable());
>     LoggingEvent le = (LoggingEvent) va.getVector().get(0);
>     assertEquals("myFQN", le.getFQNOfLoggerClass());
>     assertNotNull(le.getThrowableInformation());
Index: tests/src/java/org/apache/log4j/VectorAppender.java
===================================================================
52a53,55
>   /**
>    * Returns a vector of [EMAIL PROTECTED] LoggingEvent}.
>    */
72a76,78
>   /**
>    * Returns a delay to log.
>    */
75a82,85
>
>   /**
>    * Sets a delay to log.
>    */


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to