summaryrefslogtreecommitdiff
path: root/orktrack
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2005-12-05 16:50:39 +0000
committerHenri Herscher <henri@oreka.org>2005-12-05 16:50:39 +0000
commit21937affa1443816e63856a20d5b0783ff6c1922 (patch)
tree4dd4a311484b29e5c813cd52ce6727e72c21150e /orktrack
parent94e984192fa8c3f444f5a272cbb00fe5092ca595 (diff)
log4j can now be dynamically reconfigured using a http request
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@90 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orktrack')
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/LogManager.java21
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/OrkTrack.java33
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/messages/ConfigureLogMessage.java60
3 files changed, 94 insertions, 20 deletions
diff --git a/orktrack/src/net/sf/oreka/orktrack/LogManager.java b/orktrack/src/net/sf/oreka/orktrack/LogManager.java
index f9c293f..bf39568 100644
--- a/orktrack/src/net/sf/oreka/orktrack/LogManager.java
+++ b/orktrack/src/net/sf/oreka/orktrack/LogManager.java
@@ -15,6 +15,8 @@ package net.sf.oreka.orktrack;
import java.io.File;
+import net.sf.oreka.OrkException;
+
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
@@ -27,6 +29,8 @@ public class LogManager {
static LogManager logManager = null;
+ String ConfigFilename = null;
+
Logger rootLogger = null;
Logger configLogger = null;
Logger contextLogger = null;
@@ -56,17 +60,24 @@ public class LogManager {
return logManager;
}
- public void configure(String filename) {
+ public void configure(String filename) throws OrkException {
+
+ ConfigFilename = filename;
+ configure();
+ }
+
+ public void configure() throws OrkException {
// Check wether filename is valid
- File file = new File(filename);
+ File file = new File(ConfigFilename);
if (file.exists()) {
+
// Attempt to configure log4j
- PropertyConfigurator.configure(filename);
+ PropertyConfigurator.configure(ConfigFilename);
}
else {
- configLogger.warn("Log4j properties file does not exist:" + filename + " check your web.xml");
- }
+ throw new OrkException("Log4j properties file does not exist:" + ConfigFilename + " check your web.xml");
+ }
}
/**
diff --git a/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java b/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java
index 83038a8..88d2547 100644
--- a/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java
+++ b/orktrack/src/net/sf/oreka/orktrack/OrkTrack.java
@@ -20,6 +20,7 @@ import java.util.Date;
import net.sf.oreka.HibernateManager;
import net.sf.oreka.OrkObjectFactory;
+import net.sf.oreka.orktrack.messages.ConfigureLogMessage;
import net.sf.oreka.orktrack.messages.MetadataMessage;
import net.sf.oreka.orktrack.messages.PingMessage;
import net.sf.oreka.orktrack.messages.TapeMessage;
@@ -37,6 +38,8 @@ public class OrkTrack {
public static HibernateManager hibernateManager = new HibernateManager();
private static Date lastInMemoryObjectsSync = new Date(0);
+ static Logger logger = Logger.getLogger(OrkTrack.class);
+
public OrkTrack() {
LogManager.getInstance().getConfigLogger().log(Level.INFO, "Entering OrkTrack");
@@ -44,25 +47,25 @@ public class OrkTrack {
public static void initialize(String log4jConfigFile, String hibernateConfigFile, String configFile) {
- LogManager.getInstance().configure(log4jConfigFile);
- Logger log = LogManager.getInstance().getRootLogger();
- log.info("========================================");
- log.info(OrkTrack.APP_NAME + " starting ...");
-
- // Register all OrkObjects
- OrkObjectFactory.instance().registerOrkObject(new OrkTrackConfig());
- OrkObjectFactory.instance().registerOrkObject(new MetadataMessage());
- OrkObjectFactory.instance().registerOrkObject(new TapeMessage());
- OrkObjectFactory.instance().registerOrkObject(new UserStateMessage());
- OrkObjectFactory.instance().registerOrkObject(new PingMessage());
-
- ConfigManager.getInstance().load(configFile);
-
try {
+ LogManager.getInstance().configure(log4jConfigFile);
+
+ logger.info("========================================");
+ logger.info(OrkTrack.APP_NAME + " starting ...");
+
+ // Register all OrkObjects
+ OrkObjectFactory.instance().registerOrkObject(new OrkTrackConfig());
+ OrkObjectFactory.instance().registerOrkObject(new MetadataMessage());
+ OrkObjectFactory.instance().registerOrkObject(new TapeMessage());
+ OrkObjectFactory.instance().registerOrkObject(new UserStateMessage());
+ OrkObjectFactory.instance().registerOrkObject(new PingMessage());
+ OrkObjectFactory.instance().registerOrkObject(new ConfigureLogMessage());
+ ConfigManager.getInstance().load(configFile);
+
hibernateManager.configure(hibernateConfigFile);
}
catch (Exception e) {
- log.error("OrkTrack.initialize: Error configuring Hibernate:" + e.getMessage());
+ logger.error("OrkTrack.initialize: Error configuring Hibernate:" + e.getMessage());
}
/*
diff --git a/orktrack/src/net/sf/oreka/orktrack/messages/ConfigureLogMessage.java b/orktrack/src/net/sf/oreka/orktrack/messages/ConfigureLogMessage.java
new file mode 100644
index 0000000..ee1f6b5
--- /dev/null
+++ b/orktrack/src/net/sf/oreka/orktrack/messages/ConfigureLogMessage.java
@@ -0,0 +1,60 @@
+/*
+ * Oreka -- A media capture and retrieval platform
+ *
+ * Copyright (C) 2005, orecx LLC
+ *
+ * http://www.orecx.com
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License.
+ * Please refer to http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+package net.sf.oreka.orktrack.messages;
+
+import net.sf.oreka.OrkException;
+import net.sf.oreka.messages.AsyncMessage;
+import net.sf.oreka.messages.SimpleResponseMessage;
+import net.sf.oreka.messages.SyncMessage;
+import net.sf.oreka.orktrack.LogManager;
+import net.sf.oreka.serializers.OrkSerializer;
+
+import org.apache.log4j.Logger;
+
+public class ConfigureLogMessage extends SyncMessage {
+
+ static Logger logger = Logger.getLogger(ConfigureLogMessage.class);
+
+
+ public ConfigureLogMessage() {
+ }
+
+ @Override
+ public AsyncMessage process() {
+
+ SimpleResponseMessage response = new SimpleResponseMessage();
+ try {
+ LogManager.getInstance().configure();
+ response.setSuccess(true);
+ }
+ catch (OrkException e) {
+ response.setSuccess(false);
+ response.setComment(e.getMessage());
+ }
+ return response;
+ }
+
+ public void define(OrkSerializer serializer) throws OrkException {
+
+ }
+
+ public String getOrkClassName() {
+ return "configurelog";
+ }
+
+ public void validate() {
+ // TODO Auto-generated method stub
+
+ }
+}