[OFBiz] SVN: r7285 - trunk/base/src/base/org/ofbiz/base/util
jaz@svn.ofbiz.org
jaz at svn.ofbiz.org
Wed Apr 12 13:40:21 CDT 2006
Author: jaz
Date: 2006-04-12 13:40:19 -0500 (Wed, 12 Apr 2006)
New Revision: 7285
Modified:
trunk/base/src/base/org/ofbiz/base/util/Debug.java
Log:
added way to add log4j appenders via java code
Modified: trunk/base/src/base/org/ofbiz/base/util/Debug.java
===================================================================
--- trunk/base/src/base/org/ofbiz/base/util/Debug.java 2006-04-12 18:39:42 UTC (rev 7284)
+++ trunk/base/src/base/org/ofbiz/base/util/Debug.java 2006-04-12 18:40:19 UTC (rev 7285)
@@ -23,6 +23,7 @@
*/
package org.ofbiz.base.util;
+import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.text.DateFormat;
@@ -33,8 +34,12 @@
import org.apache.avalon.util.exception.ExceptionHelper;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
import org.apache.log4j.PropertyConfigurator;
+import org.apache.log4j.RollingFileAppender;
+import org.apache.log4j.Appender;
import org.apache.log4j.spi.LoggerRepository;
+
import org.ofbiz.base.util.collections.FlexibleProperties;
/**
@@ -338,4 +343,71 @@
return;
levelOnCache[level] = on;
}
+
+ public static synchronized Appender getNewFileAppender(String name, String logFile, long maxSize, int backupIdx, String pattern) {
+ if (pattern == null) {
+ pattern = "%-5r[%24F:%-3L:%-5p]%x %m%n";
+ }
+
+ PatternLayout layout = new PatternLayout(pattern);
+ layout.activateOptions();
+
+ RollingFileAppender newAppender = null;
+ try {
+ newAppender = new RollingFileAppender(layout, logFile, true);
+ } catch (IOException e) {
+ logFatal(e, Debug.class.getName());
+ }
+
+ if (newAppender != null) {
+ if (backupIdx > 0) {
+ newAppender.setMaxBackupIndex(backupIdx);
+ }
+ if (maxSize > 0) {
+ newAppender.setMaximumFileSize(maxSize);
+ }
+ newAppender.activateOptions();
+ newAppender.setName(name);
+ }
+
+ return newAppender;
+ }
+
+ public static boolean registerFileAppender(String module, String name, String logFile, long maxSize, int backupIdx, String pattern) {
+ Logger logger = Logger.getLogger(module);
+ boolean found = false;
+
+ Appender foundAppender = logger.getAppender(name);
+ if (foundAppender == null) {
+ Enumeration enum = Logger.getRootLogger().getLoggerRepository().getCurrentLoggers();
+ while (enum.hasMoreElements() && foundAppender == null) {
+ Logger log = (Logger) enum.nextElement();
+ foundAppender = log.getAppender(name);
+ }
+ } else {
+ return true;
+ }
+
+ if (foundAppender == null) {
+ if (logFile != null) {
+ foundAppender = getNewFileAppender(name, logFile, maxSize, backupIdx, pattern);
+ if (foundAppender != null) {
+ found = true;
+ }
+ }
+ } else {
+ found = true;
+ }
+
+ logger.addAppender(foundAppender);
+ return found;
+ }
+
+ public static boolean registerFileAppender(String module, String name, String logFile) {
+ return registerFileAppender(module, name, logFile, 0, 10, null);
+ }
+
+ public static boolean registerFileAppender(String module, String name) {
+ return registerFileAppender(module, name, null, -1, -1, null);
+ }
}
More information about the Svn
mailing list