Implementation of Log that maps directly to a Log4J
+ * Category. Initial configuration of the corresponding
+ * Category instances should be done in the usual manner, as outlined in
+ * the Log4J documentation.
Log4JLogger instead.
+ *
+ * @author Scott Sanders
+ * @author Rod Waldhoff
+ * @author Robert Burrell Donkin
+ * @version $Id$
+ */
+public final class Log4JCategoryLog implements Log {
+
+
+ // ------------------------------------------------------------- Attributes
+
+ /** The fully qualified name of the Log4JCategoryLog class. */
+ private static final String FQCN = Log4JCategoryLog.class.getName();
+
+ /** Log to this category */
+ private Category category = null;
+
+
+ // ------------------------------------------------------------ Constructor
+
+ public Log4JCategoryLog() {
+ }
+
+
+ /**
+ * Base constructor.
+ */
+ public Log4JCategoryLog(String name) {
+ this.category=Category.getInstance(name);
+ }
+
+ /** For use with a log4j factory.
+ */
+ public Log4JCategoryLog(Category category ) {
+ this.category=category;
+ }
+
+
+ // ---------------------------------------------------------- Implmentation
+
+
+ /**
+ * Log a message to the Log4j Category with TRACE priority.
+ * Currently logs to DEBUG level in Log4J.
+ */
+ public void trace(Object message) {
+ category.log(FQCN, Priority.DEBUG, message, null);
+ }
+
+
+ /**
+ * Log an error to the Log4j Category with TRACE priority.
+ * Currently logs to DEBUG level in Log4J.
+ */
+ public void trace(Object message, Throwable t) {
+ category.log(FQCN, Priority.DEBUG, message, t );
+ }
+
+
+ /**
+ * Log a message to the Log4j Category with DEBUG priority.
+ */
+ public void debug(Object message) {
+ category.log(FQCN, Priority.DEBUG, message, null);
+ }
+
+ /**
+ * Log an error to the Log4j Category with DEBUG priority.
+ */
+ public void debug(Object message, Throwable t) {
+ category.log(FQCN, Priority.DEBUG, message, t );
+ }
+
+
+ /**
+ * Log a message to the Log4j Category with INFO priority.
+ */
+ public void info(Object message) {
+ category.log(FQCN, Priority.INFO, message, null );
+ }
+
+
+ /**
+ * Log an error to the Log4j Category with INFO priority.
+ */
+ public void info(Object message, Throwable t) {
+ category.log(FQCN, Priority.INFO, message, t );
+ }
+
+
+ /**
+ * Log a message to the Log4j Category with WARN priority.
+ */
+ public void warn(Object message) {
+ category.log(FQCN, Priority.WARN, message, null );
+ }
+
+
+ /**
+ * Log an error to the Log4j Category with WARN priority.
+ */
+ public void warn(Object message, Throwable t) {
+ category.log(FQCN, Priority.WARN, message, t );
+ }
+
+
+ /**
+ * Log a message to the Log4j Category with ERROR priority.
+ */
+ public void error(Object message) {
+ category.log(FQCN, Priority.ERROR, message, null );
+ }
+
+
+ /**
+ * Log an error to the Log4j Category with ERROR priority.
+ */
+ public void error(Object message, Throwable t) {
+ category.log(FQCN, Priority.ERROR, message, t );
+ }
+
+
+ /**
+ * Log a message to the Log4j Category with FATAL priority.
+ */
+ public void fatal(Object message) {
+ category.log(FQCN, Priority.FATAL, message, null );
+ }
+
+
+ /**
+ * Log an error to the Log4j Category with FATAL priority.
+ */
+ public void fatal(Object message, Throwable t) {
+ category.log(FQCN, Priority.FATAL, message, t );
+ }
+
+
+ /**
+ * Return the native Category instance we are using.
+ */
+ public Category getCategory() {
+ return (this.category);
+ }
+
+
+ /**
+ * Check whether the Log4j Category used is enabled for DEBUG priority.
+ */
+ public boolean isDebugEnabled() {
+ return category.isDebugEnabled();
+ }
+
+
+ /**
+ * Check whether the Log4j Category used is enabled for ERROR priority.
+ */
+ public boolean isErrorEnabled() {
+ return category.isEnabledFor(Priority.ERROR);
+ }
+
+
+ /**
+ * Check whether the Log4j Category used is enabled for FATAL priority.
+ */
+ public boolean isFatalEnabled() {
+ return category.isEnabledFor(Priority.FATAL);
+ }
+
+
+ /**
+ * Check whether the Log4j Category used is enabled for INFO priority.
+ */
+ public boolean isInfoEnabled() {
+ return category.isInfoEnabled();
+ }
+
+
+ /**
+ * Check whether the Log4j Category used is enabled for TRACE priority.
+ * For Log4J, this returns the value of isDebugEnabled()
+ */
+ public boolean isTraceEnabled() {
+ return category.isDebugEnabled();
+ }
+
+ /**
+ * Check whether the Log4j Category used is enabled for WARN priority.
+ */
+ public boolean isWarnEnabled() {
+ return category.isEnabledFor(Priority.WARN);
+ }
+}