Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java')
-rw-r--r--plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java843
1 files changed, 0 insertions, 843 deletions
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java
deleted file mode 100644
index b86ad055a..000000000
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java
+++ /dev/null
@@ -1,843 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
-
-
- */
-package org.eclipse.jem.util.logger.proxy;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.*;
-import java.util.logging.Level;
-
-/**
- * This is a base, UI independent logger. It will
- * construct a consistent msg. body, and call an enfironment specific ILogRenderer.
- * By default, this logger will use a console based ILogRenderer,
- * and a J2EE Plugin identification.
- *
- * <p>
- * When running outside of Eclipse, the trace and logging level come from the system properties
- * <ul>
- * <li>"debug" (="true") - The default is <code>false</code>.
- * <li>"logLevel" (="level" where "level" is a level string, e.g. SEVERE, WARNING, etc. from the <code>java.util.logging.Level</code> class).
- * The default is "WARNING".
- * </ul>
- *
- *
- * @since 1.0.0
- */
-public class Logger {
-
- // This is used by ILogRenderer2 to define the default level.
- static class LocalLevel extends Level {
- /**
- * Comment for <code>serialVersionUID</code>
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = -6273357074767854883L;
-
- public LocalLevel(String name, int level) {
- super(name, level);
- }
- }
-
- private boolean fTraceMode = false; // will we actually punch trace messaged or not
- private String fPluginID;
- private ILogRenderer fRenderer = null;
- private ILogRenderer2 renderer2 = null;
- public String fLineSeperator;
- private Level level;
- private Level defaultLevel = Level.SEVERE; // By default only severe or greater are logged.
- private String logFileName;
- private final static String DefaultLoggerPlugin = ILogRenderer.DefaultPluginID;
- static private Hashtable Loggers = new Hashtable(); // Keep track of all the Loggers
- final protected static String[] LogMark = { "*** ERROR *** ", //$NON-NLS-1$
- "[Trace] ", //$NON-NLS-1$
- "+++ Warning +++ ", //$NON-NLS-1$
- "Info " }; //$NON-NLS-1$
-
- final protected static String Filler = " "; // Use this to indent msg. body //$NON-NLS-1$
-
- protected Logger() {
- this(ILogRenderer.DefaultPluginID);
- }
-
- protected Logger(String pluginID) {
- fPluginID = pluginID;
- setRenderer(new JDKConsoleRenderer(this)); // Set up default to this. Someone can change it later.
- }
-
- /**
- * Return the stacktrace as a print formatted string.
- * @param e
- * @return the stacktrace as a string.
- *
- * @since 1.0.0
- */
- public String exceptionToString(Throwable e) {
- StringWriter stringWriter = new StringWriter();
- e.printStackTrace(new PrintWriter(stringWriter));
- return stringWriter.toString();
- }
-
- /**
- * Get the system default logger. This is used for clients that don't know if they
- * are running in Eclipse or outside of it. This way they have a common logger format
- * which switch correctly.
- * @return default logger.
- *
- * @since 1.0.0
- */
- static public Logger getLogger() {
- Logger defaultLogger = (Logger) Loggers.get(DefaultLoggerPlugin);
- if (defaultLogger == null) {
- defaultLogger = new Logger();
- defaultLogger.init();
- Loggers.put(DefaultLoggerPlugin, defaultLogger);
- }
- return defaultLogger;
- }
-
- /**
- * Get the logger for a specific plugin.
- * @param pluginId
- * @return logger for a specific pluggin.
- *
- * @since 1.0.0
- */
- static public Logger getLogger(String pluginId) {
- if (pluginId == null)
- return Logger.getLogger();
- Logger Logger = (Logger) Loggers.get(pluginId);
- if (Logger == null) {
- Logger = new Logger(pluginId);
- Logger.init();
- Loggers.put(pluginId, Logger);
- }
- return Logger;
- }
-
- /**
- * Used by subclass to get a logger if it exists, but not create one.
- * @param pluginId
- * @return logger.
- *
- * @since 1.0.0
- */
- static protected Logger getLoggerIfExists(String pluginId) {
- if (pluginId == null)
- return Logger.getLogger();
- else
- return (Logger) Loggers.get(pluginId);
- }
-
- /**
- * Get the plugin id for this logger.
- * @return pluginid
- *
- * @since 1.0.0
- */
- public String getPluginID() {
- return fPluginID;
- }
-
- /**
- * Get the trace mode for this logger
- * @return <code>true</code> if tracing is going on.
- *
- * @since 1.0.0
- */
- public boolean getTraceMode() {
- return fTraceMode;
- }
-
- /*
- * Indent the Msg. Body to make it easier to read the log
- */
- private void indentMsg(String msg, StringBuffer logMsg) {
- // Line seperator is different on different platform, unix = \n, windows \r\n and mac \r
- String sep = fLineSeperator;
- if (msg.indexOf("\r\n") != -1) //$NON-NLS-1$
- sep = "\r\n"; //$NON-NLS-1$
- else if (msg.indexOf("\n") != -1) //$NON-NLS-1$
- sep = "\n"; //$NON-NLS-1$
- else if (msg.indexOf("\r") != -1) //$NON-NLS-1$
- sep = "\r"; //$NON-NLS-1$
- StringTokenizer tokenizer = new StringTokenizer(msg, sep);
- boolean first = true;
- while (tokenizer.hasMoreTokens()) {
- if (first) {
- first = false;
- logMsg.append(Filler + tokenizer.nextToken());
- } else
- logMsg.append(fLineSeperator + Filler + tokenizer.nextToken());
- }
- }
- /*
- * If Eclipse is started with the -XDebug or -debug turn traces on for this Logger
- * Creation date: (8/23/2001 7:37:04 PM)
- */
- private void init() {
- if (System.getProperty("debug") != null) //$NON-NLS-1$
- fTraceMode = true;
- level = defaultLevel = Level.parse(System.getProperty("logLevel", Level.WARNING.getName())); //$NON-NLS-1$
-
- try {
- fLineSeperator = System.getProperty("line.separator"); // Diff on Win/Unix/Mac //$NON-NLS-1$
- } catch (Exception e) {
- fLineSeperator = "\n"; //$NON-NLS-1$
- }
- }
- /*
- * Generic log.
- * Creation date: (8/24/2001 1:55:34 PM)
- * @return java.lang.String
- * @param msg java.lang.String
- * @param type int
- */
- private String logAny(String msg, int type) {
- StringBuffer logMsg = new StringBuffer();
- logMsg.append(fLineSeperator);
- logMsg.append(LogMark[type]);
- return punchLog(logRest(msg, logMsg), type);
- }
-
- /**
- * This is to be used by renderers that want to put a msg out
- * in a generic format. This just returns the string that
- * should be logged. It puts things like headers on it.
- *
- * @param msg
- * @param aLevel
- * @return The generic message for the string and level.
- *
- * @since 1.0.0
- */
- public String getGenericMsg(String msg, Level aLevel) {
- StringBuffer genMsg = new StringBuffer(msg.length()+16);
- genMsg.append(fLineSeperator);
- genMsg.append(getLevelHeader(aLevel));
- genMsg.append(": "); //$NON-NLS-1$
- genMsg.append(new Date());
- indentMsg(msg, genMsg);
- return genMsg.toString();
- }
-
- private static final Level[] LEVEL_SEARCH = new Level[] {
- Level.SEVERE,
- Level.WARNING,
- Level.INFO,
- ILogRenderer2.TRACE
- };
-
- private static final String[] LEVEL_MARK = new String[] {
- "*** ERROR ***", //$NON-NLS-1$
- "+++ Warning +++", //$NON-NLS-1$
- "Info", //$NON-NLS-1$
- "[Trace]" //$NON-NLS-1$
- };
-
- private String getLevelHeader(Level aLevel) {
- for (int i=0; i<LEVEL_SEARCH.length; i++)
- if (LEVEL_SEARCH[i] == aLevel)
- return LEVEL_MARK[i];
- return aLevel.getName(); // Not found, just use level string.
- }
-
- // The write's are here for history. Will implement using log(obj, Level) for all of the types.
-
-
- /**
- * deprecated use log(Level, Exception)
- * @param aLevel
- * @param ex
- * @return
- *
- * @since 1.0.0
- *
- */
- public String write(Level aLevel, Exception ex) {
- return log(aLevel, ex);
- }
-
- /**
- * deprecated use log(Throwable)
- * @param ex
- * @return
- *
- * @since 1.0.0
- *
- */
- public String write(Throwable ex) {
- return log(ex);
- }
-
- /**
- * deprecated use log(Object, Level)
- * @param aLevel
- * @param logEntry
- * @return
- *
- * @since 1.0.0
- */
- public String write(Level aLevel, Object logEntry) {
- return log(logEntry, aLevel);
- }
-
- /**
- * deprecated use log(String, Level)
- * @param aLevel
- * @param string
- * @return
- *
- * @since 1.0.0
- */
- public String write(Level aLevel, String string) {
- return log(string, aLevel);
- }
- /**
- * deprecated use log(Throwable, Level)
- * @param aLevel
- * @param ex
- * @return
- *
- * @since 1.0.0
- */
- public String write(Level aLevel, Throwable ex) {
- return log(ex, aLevel);
- }
- /**
- * deprecated use log(Throwable, Level)
- * @param aLevel
- * @param ex
- * @return
- *
- * @since 1.0.0
- */
- public String log(Level aLevel, Exception ex) {
- return log(ex, aLevel);
- }
- /**
- * deprecated use log(Throwable, Level)
- * @param aLevel
- * @param ex
- * @return
- *
- * @since 1.0.0
- */
- public String log(Level aLevel, Throwable ex) {
- return log(ex, aLevel);
- }
-
- /**
- * Get the logging level
- * @return logging level
- *
- * @since 1.0.0
- */
- public Level getLevel() {
- return level;
- }
-
- /**
- * Check if the requested level is being logged. (e.g. if current level is SEVERE, then FINE will not be logged).
- * @param requestlevel
- * @return <code>true</code> if the level will be logged.
- *
- * @since 1.0.0
- */
- public boolean isLoggingLevel(Level requestlevel) {
- if (requestlevel == ILogRenderer2.TRACE && !getTraceMode())
- return false; // We aren't tracing but requested trace.
-
- return !(requestlevel.intValue() < getLevel().intValue() || getLevel() == Level.OFF);
- }
-
- /**
- * Log an error string.
- * @param msg
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logError(String msg) {
- return log(msg, Level.SEVERE);
- }
-
- /**
- * Log an error throwable
- * @param e
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logError(Throwable e) {
- return log(e, Level.SEVERE);
- }
-
- /**
- * Log an info message.
- * @param msg
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logInfo(String msg) {
- return log(msg, Level.INFO);
- }
-
-/**
- * Log a throwable as a warning.
- * @param e
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logInfo(Throwable e) {
- return log(e, Level.INFO);
- }
-
- /**
- * Append the string to logMsg buffer passed in. Append the date and format the
- * string with nice indentation.
- *
- * @param msg
- * @param logMsg
- * @return the string from the logMsg after logging the rest.
- *
- * @since 1.0.0
- */
- protected String logRest(String msg, StringBuffer logMsg) {
- logMsg.append(new Date());
- indentMsg(msg, logMsg);
- return logMsg.toString();
- }
-
- /**
- * Log the msg as trace only.
- * @param msg
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logTrace(String msg) {
- if (fTraceMode)
- return log(msg, ILogRenderer2.TRACE);
- else
- return ILogRenderer.NOLOG_DESCRIPTION;
- }
-
- /**
- * Log the throwable as trace only.
- * @param e
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logTrace(Throwable e) {
- return log(e, ILogRenderer2.TRACE);
- }
-
- /**
- * Log the message as warning.
- * @param msg
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logWarning(String msg) {
- return log(msg, Level.WARNING);
- }
- /**
- * Log the throwable as a warning.
- * @param e
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String logWarning(Throwable e) {
- return log(e, Level.WARNING);
- }
-
- /**
- * Ask the Renderer to punch the msg. in the log.. one
- * caller at the time
- * Creation date: (8/24/2001 9:19:17 AM)
- * @return java.lang.String
- * @param msg java.lang.String
- * @param type int
- */
- protected synchronized String punchLog(String msg, int type) {
- return fRenderer.log(msg, type);
- }
-
- /**
- * Set the renderer to use.
- * @param renderer
- *
- * @since 1.0.0
- */
- public void setRenderer(ILogRenderer renderer) {
- fRenderer = renderer;
- renderer2 = (renderer instanceof ILogRenderer2) ? (ILogRenderer2) renderer : null;
- renderer.setTraceMode(getTraceMode());
- }
-
- /**
- * Set the trace mode.
- * @param flag <code>true</code> to turn on tracing.
- *
- * @since 1.0.0
- */
- public void setTraceMode(boolean flag) {
- fTraceMode = flag;
- if (fRenderer != null)
- fRenderer.setTraceMode(flag);
- }
-
- /**
- * Set the level cutoff for logging. Anything below this level will not log.
- * Do not set level to <code>ILogRenderer2.TRACE</code>. It doesn't make sense.
- *
- * @param level (Use <code>ILogRenderer2.DEFAULT</code> to restore to default for this logger.
- *
- * @since 1.0.0
- */
- public void setLevel(Level level) {
- this.level = level != ILogRenderer2.DEFAULT ? level : defaultLevel;
- }
-
- /**
- * Set the default level for this logger. It won't touch the current level.
- *
- * @param level
- *
- * @since 1.0.0
- */
- public void setDefaultLevel(Level level) {
- this.defaultLevel = level;
- }
-
- /**
- * Get the log file name.
- * @return Returns the logFileName.
- */
- public String getLogFileName() {
- return logFileName;
- }
-
- /**
- * Set the log file name.
- * @param logFileName The logFileName to set.
- */
- public void setLogFileName(String logFileName) {
- this.logFileName = logFileName;
- }
-
- // Now all of the log() types that use a Level.
-
- /**
- * Log the throwable at the default level for a throwable.
- * @param e
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(Throwable e) {
- return log(e, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the throwable at the given level.
- * @param e
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(Throwable e, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(e, logLevel);
- } else {
- // Do it the old way.
- String stackTrace = exceptionToString(e);
- return logAny(stackTrace, getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.SEVERE));
- }
- }
-
- public String log(Object o) {
- return log(o, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the object at the given level.
- * @param o
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(Object o, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(o, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(o), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- // The following are added to match up with Hyades so that primitives can be logged too.
-
- /**
- * Log a boolean at the default level.
- * @param b
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(boolean b) {
- return log(b, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log a boolean at the given level.
- * @param b
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(boolean b, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(b, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(b), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /**
- * Log the character at the default level.
- * @param c
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(char c) {
- return log(c, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the character at the given level.
- * @param c
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(char c, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(c, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(c), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /**
- * Log the byte at the default level.
- * @param b
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(byte b) {
- return log(b, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the byte at the given level.
- * @param b
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(byte b, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(b, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(b), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /**
- * Log the short at the default level.
- * @param s
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(short s) {
- return log(s, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the short at the given level.
- * @param s
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(short s, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(s, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(s), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /**
- * Log the int at the default level.
- * @param i
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(int i) {
- return log(i, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the int at the default level.
- * @param i
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(int i, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(i, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(i), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /**
- * Log the long at the default level.
- * @param l
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(long l) {
- return log(l, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the long at the given level.
- * @param l
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(long l, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(l, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(l), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /**
- * Log the float at the default level.
- * @param f
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(float f) {
- return log(f, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the float at the given level.
- * @param f
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(float f, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(f, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(f), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /**
- * Log the double at the default level
- * @param d
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(double d) {
- return log(d, ILogRenderer2.DEFAULT);
- }
-
- /**
- * Log the double at the given level
- *
- * @param d
- * @param logLevel
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- *
- * @since 1.0.0
- */
- public String log(double d, Level logLevel) {
- if (renderer2 != null) {
- return renderer2.log(d, logLevel);
- } else {
- // Do it the old way.
- return logAny(String.valueOf(d), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
- }
- }
-
- /*
- * Turn new type into old type. The defaultLevel is the
- * level to use if the incoming level is marked as default.
- */
- private int getOldType(Level aLevel) {
- if (aLevel == Level.SEVERE)
- return ILogRenderer.LOG_ERROR;
- else if (aLevel == Level.WARNING)
- return ILogRenderer.LOG_WARNING;
- else if (aLevel == Level.INFO)
- return ILogRenderer.LOG_INFO;
- else if (aLevel == ILogRenderer2.TRACE)
- return ILogRenderer.LOG_TRACE;
- else
- return ILogRenderer.LOG_INFO;
- }
-}

Back to the top