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]