aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authormwebster <mwebster>2006-08-09 15:53:53 +0000
committermwebster <mwebster>2006-08-09 15:53:53 +0000
commit7a0f7a45b24c8dc9c63141edcb57f80f4a358f63 (patch)
tree0d9888f646dc8779f581da46a5c47893633ee3db /weaver
parente42bdf150dc7dda76eacf36cdb8d7ea1baa75a9e (diff)
downloadaspectj-7a0f7a45b24c8dc9c63141edcb57f80f4a358f63.tar.gz
aspectj-7a0f7a45b24c8dc9c63141edcb57f80f4a358f63.zip
Bug 150487 "Tracing and Logging Framework" (support debug, info, warn, error and fatal)
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/tools/AbstractTrace.java64
-rw-r--r--weaver/src/org/aspectj/weaver/tools/CommonsTrace.java30
-rw-r--r--weaver/src/org/aspectj/weaver/tools/DefaultTrace.java34
-rw-r--r--weaver/src/org/aspectj/weaver/tools/Trace.java9
-rw-r--r--weaver/testsrc/org/aspectj/weaver/AbstractTraceTest.java83
-rw-r--r--weaver/testsrc/org/aspectj/weaver/CommonsTraceTest.java37
-rw-r--r--weaver/testsrc/org/aspectj/weaver/DefaultTraceTest.java36
7 files changed, 187 insertions, 106 deletions
diff --git a/weaver/src/org/aspectj/weaver/tools/AbstractTrace.java b/weaver/src/org/aspectj/weaver/tools/AbstractTrace.java
index 4b421f2ae..0ca742503 100644
--- a/weaver/src/org/aspectj/weaver/tools/AbstractTrace.java
+++ b/weaver/src/org/aspectj/weaver/tools/AbstractTrace.java
@@ -32,44 +32,12 @@ public abstract class AbstractTrace implements Trace {
public abstract void exit(String methodName, Throwable th);
- public void error(String message) {
- // TODO Auto-generated method stub
-
- }
-
- public void error(String message, Throwable th) {
- // TODO Auto-generated method stub
-
- }
-
public void event(String methodName) {
- // TODO Auto-generated method stub
-
+ throw new UnsupportedOperationException("event");
}
public void event(String methodName, Object thiz, Object[] args) {
- // TODO Auto-generated method stub
-
- }
-
- public void exit(String methodName) {
- // TODO Auto-generated method stub
-
- }
-
- public void info(String message) {
- // TODO Auto-generated method stub
-
- }
-
- public void warn(String message) {
- // TODO Auto-generated method stub
-
- }
-
- public void warn(String message, Throwable th) {
- // TODO Auto-generated method stub
-
+ throw new UnsupportedOperationException("event");
}
/*
@@ -90,7 +58,22 @@ public abstract class AbstractTrace implements Trace {
public void exit (String methodName, boolean b) {
exit(methodName,new Boolean(b));
}
+
+ public void warn(String message) {
+ warn(message,null);
+ }
+
+ public void error(String message) {
+ error(message,null);
+ }
+
+ public void fatal (String message) {
+ fatal(message,null);
+ }
+ /*
+ * Formatting
+ */
protected String formatMessage(String kind, String className, String methodName, Object thiz, Object[] args) {
StringBuffer message = new StringBuffer();
Date now = new Date();
@@ -104,6 +87,17 @@ public abstract class AbstractTrace implements Trace {
return message.toString();
}
+ protected String formatMessage(String kind, String text, Throwable th) {
+ StringBuffer message = new StringBuffer();
+ Date now = new Date();
+ message.append(formatDate(now)).append(" ");
+ message.append(Thread.currentThread().getName()).append(" ");
+ message.append(kind).append(" ");
+ message.append(text);
+ if (th != null) message.append(" ").append(formatObj(th));
+ return message.toString();
+ }
+
private static String formatDate (Date date) {
if (timeFormat == null) {
timeFormat = new SimpleDateFormat("HH:mm:ss.SSS");
@@ -166,4 +160,4 @@ public abstract class AbstractTrace implements Trace {
return sb.toString();
}
-}
+} \ No newline at end of file
diff --git a/weaver/src/org/aspectj/weaver/tools/CommonsTrace.java b/weaver/src/org/aspectj/weaver/tools/CommonsTrace.java
index a5fb09751..75afbaf2d 100644
--- a/weaver/src/org/aspectj/weaver/tools/CommonsTrace.java
+++ b/weaver/src/org/aspectj/weaver/tools/CommonsTrace.java
@@ -61,4 +61,34 @@ public class CommonsTrace extends AbstractTrace {
public void setTraceEnabled (boolean b) {
}
+ public void debug (String message) {
+ if (log.isDebugEnabled()) {
+ log.debug(message);
+ }
+ }
+
+ public void info(String message) {
+ if (log.isInfoEnabled()) {
+ log.info(message);
+ }
+ }
+
+ public void warn (String message, Throwable th) {
+ if (log.isWarnEnabled()) {
+ log.warn(message,th);
+ }
+ }
+
+ public void error (String message, Throwable th) {
+ if (log.isErrorEnabled()) {
+ log.error(message,th);
+ }
+ }
+
+ public void fatal (String message, Throwable th) {
+ if (log.isFatalEnabled()) {
+ log.fatal(message,th);
+ }
+ }
+
}
diff --git a/weaver/src/org/aspectj/weaver/tools/DefaultTrace.java b/weaver/src/org/aspectj/weaver/tools/DefaultTrace.java
index 3e0bb5609..b50c081ec 100644
--- a/weaver/src/org/aspectj/weaver/tools/DefaultTrace.java
+++ b/weaver/src/org/aspectj/weaver/tools/DefaultTrace.java
@@ -55,6 +55,40 @@ public class DefaultTrace extends AbstractTrace {
println(formatMessage("<",tracedClass.getName(),methodName,th, null));
}
}
+ public void debug (String message) {
+ if (traceEnabled) {
+ println(formatMessage("?",message,null));
+ }
+ }
+
+ public void info(String message) {
+ if (traceEnabled) {
+ println(formatMessage("I",message,null));
+ }
+ }
+
+ public void warn (String message, Throwable th) {
+ if (traceEnabled) {
+ println(formatMessage("W",message,th));
+ if (th != null) th.printStackTrace();
+ }
+ }
+
+
+ public void error (String message, Throwable th) {
+ if (traceEnabled) {
+ println(formatMessage("E",message,th));
+ if (th != null) th.printStackTrace();
+ }
+
+ }
+
+ public void fatal (String message, Throwable th) {
+ if (traceEnabled) {
+ println(formatMessage("X",message,th));
+ if (th != null) th.printStackTrace();
+ }
+ }
/**
* Template method that allows choice of destination for output
diff --git a/weaver/src/org/aspectj/weaver/tools/Trace.java b/weaver/src/org/aspectj/weaver/tools/Trace.java
index 9c8fdb6ab..ace5f4971 100644
--- a/weaver/src/org/aspectj/weaver/tools/Trace.java
+++ b/weaver/src/org/aspectj/weaver/tools/Trace.java
@@ -26,6 +26,8 @@ public interface Trace {
public void event (String methodName, Object thiz, Object[] args);
+ public void debug (String message);
+
public void info (String message);
public void warn (String message);
@@ -35,6 +37,11 @@ public interface Trace {
public void error (String message);
public void error (String message, Throwable th);
+
+ public void fatal (String message);
+
+ public void fatal (String message, Throwable th);
+
/*
* Convenience methods
@@ -48,4 +55,4 @@ public interface Trace {
public boolean isTraceEnabled ();
public void setTraceEnabled (boolean b);
-}
+} \ No newline at end of file
diff --git a/weaver/testsrc/org/aspectj/weaver/AbstractTraceTest.java b/weaver/testsrc/org/aspectj/weaver/AbstractTraceTest.java
new file mode 100644
index 000000000..abdff5fcb
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/AbstractTraceTest.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 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:
+ * Matthew Webster - initial implementation
+ *******************************************************************************/
+package org.aspectj.weaver;
+
+import junit.framework.TestCase;
+
+import org.aspectj.weaver.tools.AbstractTrace;
+import org.aspectj.weaver.tools.DefaultTrace;
+
+public class AbstractTraceTest extends TestCase {
+
+ protected AbstractTrace trace;
+
+ public void testIsTraceEnabled() {
+ DefaultTrace trace = new DefaultTrace(getClass());
+ assertFalse(trace.isTraceEnabled());
+ }
+
+ public void testEnterWithThisAndArgs() {
+ trace.enter("testEnterWithThisAndArgs",this,new Object[] { "arg1", "arg2" });
+ }
+
+ public void testEnterWithThis() {
+ trace.enter("testEnterWithThis",this);
+ }
+
+ public void testEnter() {
+ trace.enter("testEnter");
+ }
+
+ public void testExitWithReturn() {
+ trace.exit("testExitWithReturn","ret");
+ }
+
+ public void testExitWithThrowable() {
+ trace.exit("testExitWithThrowable",new RuntimeException());
+ }
+
+ public void testExit() {
+ trace.exit("testExit");
+ }
+
+ public void testDebug() {
+ trace.debug("debug");
+ }
+
+ public void testInfo() {
+ trace.info("information");
+ }
+
+ public void testWarn() {
+ trace.warn("warning");
+ }
+
+ public void testWarnWithException() {
+ trace.warn("warning",new RuntimeException("warning"));
+ }
+
+ public void testError() {
+ trace.error("error");
+ }
+
+ public void testErrorWithException() {
+ trace.error("error",new RuntimeException("error"));
+ }
+
+ public void testFatal() {
+ trace.fatal("fatal");
+ }
+
+ public void testFatalWithException() {
+ trace.fatal("fatal",new RuntimeException("fatal"));
+ }
+
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/CommonsTraceTest.java b/weaver/testsrc/org/aspectj/weaver/CommonsTraceTest.java
index ccc074be1..1ff47c45a 100644
--- a/weaver/testsrc/org/aspectj/weaver/CommonsTraceTest.java
+++ b/weaver/testsrc/org/aspectj/weaver/CommonsTraceTest.java
@@ -12,51 +12,18 @@ package org.aspectj.weaver;
import org.aspectj.weaver.tools.CommonsTrace;
-import junit.framework.TestCase;
-
-public class CommonsTraceTest extends TestCase {
-
- private CommonsTrace trace;
+public class CommonsTraceTest extends AbstractTraceTest {
protected void setUp() throws Exception {
super.setUp();
trace = new CommonsTrace(getClass());
trace.setTraceEnabled(true);
}
-
+
public void testCommonsTrace() {
CommonsTrace trace = new CommonsTrace(getClass());
}
- public void testEnterWithThisAndArgs() {
- trace.enter("testEnterWithThisAndArgs",this,new Object[] { "arg1", "arg2" });
- }
-
- public void testEnterWithThis() {
- trace.enter("testEnterWithThis",this);
- }
-
- public void testEnter() {
- trace.enter("testEnter");
- }
-
- public void testExitWithReturn() {
- trace.exit("testExitWithReturn","ret");
- }
-
- public void testExitWithThrowable() {
- trace.exit("testExitWithThrowable",new RuntimeException());
- }
-
- public void testExit() {
- trace.exit("testExit");
- }
-
- public void testIsTraceEnabled() {
- CommonsTrace trace = new CommonsTrace(getClass());
- assertFalse(trace.isTraceEnabled());
- }
-
public void testSetTraceEnabled() {
CommonsTrace trace = new CommonsTrace(getClass());
trace.setTraceEnabled(true);
diff --git a/weaver/testsrc/org/aspectj/weaver/DefaultTraceTest.java b/weaver/testsrc/org/aspectj/weaver/DefaultTraceTest.java
index 784c20992..b582d9bc4 100644
--- a/weaver/testsrc/org/aspectj/weaver/DefaultTraceTest.java
+++ b/weaver/testsrc/org/aspectj/weaver/DefaultTraceTest.java
@@ -10,14 +10,10 @@
*******************************************************************************/
package org.aspectj.weaver;
-import junit.framework.TestCase;
-
import org.aspectj.weaver.tools.DefaultTrace;
-public class DefaultTraceTest extends TestCase {
+public class DefaultTraceTest extends AbstractTraceTest {
- private DefaultTrace trace;
-
protected void setUp() throws Exception {
super.setUp();
trace = new DefaultTrace(getClass());
@@ -28,39 +24,9 @@ public class DefaultTraceTest extends TestCase {
DefaultTrace trace = new DefaultTrace(getClass());
}
- public void testEnterWithThisAndArgs() {
- trace.enter("testEnterWithThisAndArgs",this,new Object[] { "arg1", "arg2" });
- }
-
- public void testEnterWithThis() {
- trace.enter("testEnterWithThis",this);
- }
-
- public void testEnter() {
- trace.enter("testEnter");
- }
-
- public void testExitWithReturn() {
- trace.exit("testExitWithReturn","ret");
- }
-
- public void testExitWithThrowable() {
- trace.exit("testExitWithThrowable",new RuntimeException());
- }
-
- public void testExit() {
- trace.exit("testExit");
- }
-
- public void testIsTraceEnabled() {
- DefaultTrace trace = new DefaultTrace(getClass());
- assertFalse(trace.isTraceEnabled());
- }
-
public void testSetTraceEnabled() {
DefaultTrace trace = new DefaultTrace(getClass());
trace.setTraceEnabled(true);
assertTrue(trace.isTraceEnabled());
}
-
}