summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2017-06-21 02:16:00 +0200
committerEndi S. Dewata <edewata@redhat.com>2017-06-22 06:03:45 +0200
commit31988eb90c0f24f13e9bdbb77a91778c7809ebb3 (patch)
tree3ebe6071f469adbe1dc05c9e0a7e79b979a9db53 /base
parent355dac82588ce83e84b7dc57b4f7dbf27c6ba9bd (diff)
downloadpki-31988eb90c0f24f13e9bdbb77a91778c7809ebb3.tar.gz
pki-31988eb90c0f24f13e9bdbb77a91778c7809ebb3.tar.xz
pki-31988eb90c0f24f13e9bdbb77a91778c7809ebb3.zip
Refactored Logger class.
The Logger class has been modified to provide an interface to create a Logger instance that stores the log category and log source. https://pagure.io/dogtagpki/issue/2689 Change-Id: I1dadcdf35af0f0a17e02328c73ef6d95ca691e7f
Diffstat (limited to 'base')
-rw-r--r--base/common/src/com/netscape/certsrv/logging/ILogger.java6
-rw-r--r--base/server/cmscore/src/com/netscape/cmscore/logging/LogFactory.java6
-rw-r--r--base/server/cmscore/src/com/netscape/cmscore/logging/Logger.java53
-rw-r--r--base/server/test/com/netscape/cmscore/logging/LoggerDefaultStub.java3
4 files changed, 47 insertions, 21 deletions
diff --git a/base/common/src/com/netscape/certsrv/logging/ILogger.java b/base/common/src/com/netscape/certsrv/logging/ILogger.java
index f3e365f95..56298bd3d 100644
--- a/base/common/src/com/netscape/certsrv/logging/ILogger.java
+++ b/base/common/src/com/netscape/certsrv/logging/ILogger.java
@@ -480,14 +480,8 @@ public interface ILogger {
String msg, Object params[], boolean multiline);
/**
- * Register a log event factory. Which will create the desired ILogEvents.
- */
- public void register(LogCategory evtClass, ILogEventFactory f);
-
- /**
* Retrieves the associated log queue. The log queue is where issued log events
* are collected for later processing.
*/
public ILogQueue getLogQueue();
-
}
diff --git a/base/server/cmscore/src/com/netscape/cmscore/logging/LogFactory.java b/base/server/cmscore/src/com/netscape/cmscore/logging/LogFactory.java
index 3d76c74b8..855acf981 100644
--- a/base/server/cmscore/src/com/netscape/cmscore/logging/LogFactory.java
+++ b/base/server/cmscore/src/com/netscape/cmscore/logging/LogFactory.java
@@ -22,6 +22,8 @@ import java.util.Properties;
import com.netscape.certsrv.logging.IBundleLogEvent;
import com.netscape.certsrv.logging.ILogEvent;
import com.netscape.certsrv.logging.ILogEventFactory;
+import com.netscape.certsrv.logging.LogCategory;
+import com.netscape.certsrv.logging.LogSource;
public abstract class LogFactory implements ILogEventFactory {
@@ -30,6 +32,10 @@ public abstract class LogFactory implements ILogEventFactory {
public LogFactory() {
}
+ public Logger createLogger(LogCategory category, LogSource source) {
+ return new Logger(this, category, source);
+ }
+
/**
* Set the resource bundle of the log event.
*
diff --git a/base/server/cmscore/src/com/netscape/cmscore/logging/Logger.java b/base/server/cmscore/src/com/netscape/cmscore/logging/Logger.java
index 38cf95c56..4b47a8712 100644
--- a/base/server/cmscore/src/com/netscape/cmscore/logging/Logger.java
+++ b/base/server/cmscore/src/com/netscape/cmscore/logging/Logger.java
@@ -21,7 +21,6 @@ import java.util.Hashtable;
import java.util.Properties;
import com.netscape.certsrv.logging.ILogEvent;
-import com.netscape.certsrv.logging.ILogEventFactory;
import com.netscape.certsrv.logging.ILogQueue;
import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.logging.LogCategory;
@@ -40,19 +39,27 @@ public class Logger implements ILogger {
protected static Logger mLogger = new Logger();
protected ILogQueue mLogQueue = LogQueue.getLogQueue();
- protected Hashtable<LogCategory, ILogEventFactory> mFactories = new Hashtable<LogCategory, ILogEventFactory>();
+ protected static Hashtable<LogCategory, LogFactory> mFactories = new Hashtable<LogCategory, LogFactory>();
- /**
- * Constructs a generic logger, and registers a list
- * of resident event factories.
- */
- public Logger() {
- // register standard event factories
+ static {
register(EV_AUDIT, new AuditEventFactory());
register(EV_SYSTEM, new SystemEventFactory());
register(EV_SIGNED_AUDIT, new SignedAuditEventFactory());
}
+ LogFactory factory;
+ LogCategory category;
+ LogSource source;
+
+ public Logger() {
+ }
+
+ public Logger(LogFactory factory, LogCategory category, LogSource source) {
+ this.factory = factory;
+ this.category = category;
+ this.source = source;
+ }
+
/**
* get default single global logger
*/
@@ -60,6 +67,17 @@ public class Logger implements ILogger {
return mLogger;
}
+ public static Logger getLogger(LogCategory category, LogSource source) {
+
+ LogFactory factory = mFactories.get(category);
+
+ if (factory == null) {
+ throw new RuntimeException("Unknown logger category: " + category);
+ }
+
+ return factory.createLogger(category, source);
+ }
+
/**
* Retrieves the associated log queue.
*/
@@ -73,7 +91,7 @@ public class Logger implements ILogger {
* @param evtClass the event class name: ILogger.EV_SYSTEM or ILogger.EV_AUDIT
* @param f the event factory name
*/
- public void register(LogCategory evtClass, ILogEventFactory f) {
+ public static void register(LogCategory evtClass, LogFactory f) {
mFactories.put(evtClass, f);
}
@@ -103,6 +121,10 @@ public class Logger implements ILogger {
//************** no param ****************
+ public void log(int level, String msg) {
+ log(category, null, source, level, msg);
+ }
+
/**
* Logs an event to the log queue.
*
@@ -351,6 +373,10 @@ public class Logger implements ILogger {
//******************** end multiline log *************************
+ public ILogEvent create(int level, String msg, Object params[], boolean multiline) {
+ return create(category, null, source, level, msg, params, multiline);
+ }
+
/**
* Creates generic log event. If required, we can recycle
* events here.
@@ -358,10 +384,13 @@ public class Logger implements ILogger {
//XXXXXXXXXXX prop is out dated!!!! XXXXXXXXXXXXXXX
public ILogEvent create(LogCategory evtClass, Properties prop, LogSource source, int level,
String msg, Object params[], boolean multiline) {
- ILogEventFactory f = mFactories.get(evtClass);
- if (f == null)
- return null;
+ LogFactory f = factory == null ? mFactories.get(evtClass) : factory;
+
+ if (f == null) {
+ throw new RuntimeException("Unknown logger category: " + evtClass);
+ }
+
return f.create(evtClass, prop, source, level, multiline, msg, params);
}
diff --git a/base/server/test/com/netscape/cmscore/logging/LoggerDefaultStub.java b/base/server/test/com/netscape/cmscore/logging/LoggerDefaultStub.java
index 0e6b7673c..430a45ce1 100644
--- a/base/server/test/com/netscape/cmscore/logging/LoggerDefaultStub.java
+++ b/base/server/test/com/netscape/cmscore/logging/LoggerDefaultStub.java
@@ -69,9 +69,6 @@ public class LoggerDefaultStub implements ILogger {
return null;
}
- public void register(LogCategory evtClass, ILogEventFactory f) {
- }
-
public ILogQueue getLogQueue() {
return null;
}