diff --git a/pom.xml b/pom.xml index 95d71857..25eb1bf1 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ ch.qos.cal10n cal10n-api - 0.5.1 + 0.7 diff --git a/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLogger.java b/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLogger.java index 4ce9d70c..ed3a743b 100644 --- a/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLogger.java +++ b/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLogger.java @@ -21,8 +21,6 @@ */ package org.slf4j.cal10n; -import java.util.Locale; - import org.slf4j.Logger; import org.slf4j.Marker; import org.slf4j.MarkerFactory; @@ -30,7 +28,6 @@ import org.slf4j.ext.LoggerWrapper; import org.slf4j.spi.LocationAwareLogger; import ch.qos.cal10n.IMessageConveyor; -import ch.qos.cal10n.MessageConveyor; import ch.qos.cal10n.MessageParameterObj; /** @@ -50,13 +47,14 @@ public class LocLogger extends LoggerWrapper implements Logger { */ static Marker LOCALIZED = MarkerFactory.getMarker("LOCALIZED"); - final Locale locale; final IMessageConveyor imc; - public LocLogger(Logger logger, Locale locale) { + public LocLogger(Logger logger, IMessageConveyor imc) { super(logger, LoggerWrapper.class.getName()); - this.locale = locale; - imc = new MessageConveyor(locale); + if(imc == null) { + throw new IllegalArgumentException("IMessageConveyor cannot be null"); + } + this.imc = imc; } /** diff --git a/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLoggerFactory.java b/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLoggerFactory.java index d7441042..65894841 100644 --- a/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLoggerFactory.java +++ b/slf4j-ext/src/main/java/org/slf4j/cal10n/LocLoggerFactory.java @@ -21,11 +21,11 @@ */ package org.slf4j.cal10n; -import java.util.Locale; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ch.qos.cal10n.IMessageConveyor; + /** * * This class is essentially a wrapper around an {@link LoggerFactory} producing @@ -34,19 +34,19 @@ import org.slf4j.LoggerFactory; *

* Contrary to {@link LoggerFactory#getLogger(String)} method of * {@link LoggerFactory}, each call to {@link getLocLogger} produces a new - * instance of {@link LocLogger}. This should not matter because an XLogger - * instance does have any state beyond that of the {@link Logger} instance - * it wraps and its locale. + * instance of {@link LocLogger}. This should not matter because a LocLogger + * instance does have any state beyond that of the {@link Logger} in stance it + * wraps and its message conveyor. * - * @author Ceki Gulcu + * @author Ceki Gücü * */ public class LocLoggerFactory { - final Locale locale; + final IMessageConveyor imc; - public LocLoggerFactory(Locale locale) { - this.locale = locale; + public LocLoggerFactory(IMessageConveyor imc) { + this.imc = imc; } /** @@ -56,7 +56,7 @@ public class LocLoggerFactory { * @return */ public LocLogger getLocLogger(String name) { - return new LocLogger(LoggerFactory.getLogger(name), locale); + return new LocLogger(LoggerFactory.getLogger(name), imc); } /** diff --git a/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/LocLoggerTest.java b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/LocLoggerTest.java index 48e4c51d..690474df 100644 --- a/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/LocLoggerTest.java +++ b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/LocLoggerTest.java @@ -32,12 +32,16 @@ import org.slf4j.cal10n.LocLogger; import org.slf4j.cal10n.LocLoggerFactory; import org.slf4j.dummyExt.ListAppender; +import ch.qos.cal10n.IMessageConveyor; +import ch.qos.cal10n.MessageConveyor; + public class LocLoggerTest extends TestCase { ListAppender listAppender; org.apache.log4j.Logger log4jRoot; - LocLoggerFactory llFactory_uk = new LocLoggerFactory(Locale.UK); + IMessageConveyor imc = new MessageConveyor(Locale.UK); + LocLoggerFactory llFactory_uk = new LocLoggerFactory(imc); final static String EXPECTED_FILE_NAME = "LocLoggerTest.java"; diff --git a/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/Months.java b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/Months.java index 679e7c4f..5f4bceb0 100644 --- a/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/Months.java +++ b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/Months.java @@ -1,8 +1,8 @@ package org.slf4j.cal10n_dummy; -import ch.qos.cal10n.ResourceBundleName; +import ch.qos.cal10n.BaseName; -@ResourceBundleName("months") +@BaseName("months") public enum Months { JAN, FEB, MAR, APR, MAY, JUN; diff --git a/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/MyApplication.java b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/MyApplication.java new file mode 100644 index 00000000..fd9d7d2e --- /dev/null +++ b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/MyApplication.java @@ -0,0 +1,32 @@ +package org.slf4j.cal10n_dummy; + +import java.util.Locale; + +import org.slf4j.cal10n.LocLogger; +import org.slf4j.cal10n.LocLoggerFactory; + +import ch.qos.cal10n.IMessageConveyor; +import ch.qos.cal10n.MessageConveyor; + +public class MyApplication { + + // create a message conveyor for a given locale + IMessageConveyor messageConveyor = new MessageConveyor(Locale.UK); + + // create the LogLoggerFactory + LocLoggerFactory llFactory_uk = new LocLoggerFactory(messageConveyor); + + // create a locLogger + LocLogger locLogger = llFactory_uk.getLocLogger(this.getClass()); + + + public void applicationStart() { + locLogger.info(Production.APPLICATION_STARTED); + // .. + } + + public void applicationStop() { + locLogger.info(Production.APPLICATION_STOPPED); + // ... + } +} diff --git a/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/PackageTest.java b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/PackageTest.java new file mode 100644 index 00000000..cfcb8355 --- /dev/null +++ b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/PackageTest.java @@ -0,0 +1,12 @@ +package org.slf4j.cal10n_dummy; + +import junit.framework.*; + +public class PackageTest extends TestCase { + + public static Test suite() { + TestSuite suite = new TestSuite(); + suite.addTestSuite(LocLoggerTest.class); + return suite; + } +} diff --git a/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/Production.java b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/Production.java new file mode 100644 index 00000000..95fce9d1 --- /dev/null +++ b/slf4j-ext/src/test/java/org/slf4j/cal10n_dummy/Production.java @@ -0,0 +1,14 @@ +package org.slf4j.cal10n_dummy; + +import ch.qos.cal10n.LocaleData; +import ch.qos.cal10n.Locale; +import ch.qos.cal10n.BaseName; + +@BaseName("production") +@LocaleData( { @Locale("en_UK"), @Locale("fr") }) +public enum Production { + APPLICATION_STARTED, + APPLICATION_STOPPED, + DB_CONNECTION, + DB_CONNECTION_FAILURE; +} \ No newline at end of file diff --git a/slf4j-site/src/site/pages/docs.html b/slf4j-site/src/site/pages/docs.html index 4cde2a70..989b1ca1 100644 --- a/slf4j-site/src/site/pages/docs.html +++ b/slf4j-site/src/site/pages/docs.html @@ -29,6 +29,9 @@

  • Bridging legacy APIs
  • SLF4J migrator
  • SLF4J extensions
  • + +
  • Localization/Internalization support
  • +
  • javadocs
  • sources, diff --git a/slf4j-site/src/site/pages/download.html b/slf4j-site/src/site/pages/download.html index 366b3368..57c970b2 100644 --- a/slf4j-site/src/site/pages/download.html +++ b/slf4j-site/src/site/pages/download.html @@ -24,6 +24,16 @@

    Download version ${project.version} including full source code, class files and documentation in ZIP or TAR.GZ format:

    +

    Stable version

    + + + +

    Release candidate

    +