Skip to content

Commit 32e27bb

Browse files
author
丁建水
committed
Using getClass().getName as the methods's class name ,if it's not a static method.Thanks to https://github.com/pqsky
1 parent 3bae752 commit 32e27bb

File tree

5 files changed

+20
-40
lines changed

5 files changed

+20
-40
lines changed

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.dingjsh</groupId>
66
<artifactId>javaagent</artifactId>
7-
<version>1.1.1</version>
7+
<version>1.1.2</version>
88
<packaging>jar</packaging>
99

1010
<properties>
@@ -247,5 +247,11 @@
247247
<optional>true</optional>
248248
<systemPath>${java.home}/../lib/tools.jar</systemPath>
249249
</dependency>
250+
<dependency>
251+
<groupId>junit</groupId>
252+
<artifactId>junit</artifactId>
253+
<version>4.12</version>
254+
<scope>test</scope>
255+
</dependency>
250256
</dependencies>
251257
</project>

src/com/thunisoft/agent/log/ExecuteLogUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import com.thunisoft.agent.NamedThreadFactory;
2727

2828
/**
29-
* ExecuteLogUtils 这个class要加载到webapp的classloader中,不要增加任何第三方类的引用
29+
* ExecuteLogUtils
3030
*
3131
* @author dingjsh
3232
* @time 2015-7-27下午05:57:01

src/com/thunisoft/agent/transformer/ThunisoftClassFileTransformer.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.thunisoft.agent.javassist.CtClass;
1919
import com.thunisoft.agent.javassist.CtMethod;
2020
import com.thunisoft.agent.javassist.LoaderClassPath;
21+
import com.thunisoft.agent.javassist.Modifier;
2122
import com.thunisoft.agent.javassist.NotFoundException;
2223

2324
import com.thunisoft.agent.ConfigUtils;
@@ -101,19 +102,21 @@ private byte[] aopLog(CtClass cc, String className, byte[] byteCode) throws Cann
101102
return byteCode;
102103
}
103104

104-
private void aopLog(String className, CtMethod m) throws CannotCompileException {
105+
private void aopLog(String className,
106+
CtMethod m) throws CannotCompileException {
105107
if (null == m || m.isEmpty()) {
106108
return;
107109
}
110+
boolean isMethodStatic = Modifier.isStatic(m.getModifiers());
111+
String aopClassName = isMethodStatic ? "\"" + className + "\""
112+
: "this.getClass().getName()";
108113
//避免变量名重复
109114
m.addLocalVariable("dingjsh_javaagent_elapsedTime", CtClass.longType);
110-
m.insertBefore("dingjsh_javaagent_elapsedTime = java.lang.System.currentTimeMillis();");
111-
m.insertAfter("dingjsh_javaagent_elapsedTime = java.lang.System.currentTimeMillis() - dingjsh_javaagent_elapsedTime;"
112-
+ LOG_UTILS
113-
+ ".log(\""
114-
+ className
115-
+ "\",\""
116-
+ m.getName()
115+
m.insertBefore(
116+
"dingjsh_javaagent_elapsedTime = java.lang.System.currentTimeMillis();");
117+
m.insertAfter(
118+
"dingjsh_javaagent_elapsedTime = java.lang.System.currentTimeMillis() - dingjsh_javaagent_elapsedTime;");
119+
m.insertAfter(LOG_UTILS + ".log(" + aopClassName + ",\"" + m.getName()
117120
+ "\",java.lang.System.currentTimeMillis(),(int)dingjsh_javaagent_elapsedTime"
118121
+ ");");
119122
}

src/props/agent.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#the default packages that you don't want to monitor,multi config separated by semicolon
22
# such as tomcat,jre's method
3-
agent.exclude.package.default=
3+
agent.exclude.package.default=com.thunisoft.tas
44
#the packages that you don't want to monitor,multi config separated by semicolon
55
agent.exclude.package=
66
#the packages you want to monitor,the agent only monitor the packages and subpackages thar configed in here,

test/com/thunisoft/agent/test/TestPerformance.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)