# LogTrace-Plugin **Repository Path**: ttt307307/LogTrace-Plugin ## Basic Information - **Project Name**: LogTrace-Plugin - **Description**: LogTrace gradle插件,通过ajc切入日志 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-08-25 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #+TITLE:README.org * 介绍 LogTrace插件,用AspectJ切入log, #+BEGIN_SRC Test01.java ... @LogTrace(level = 2) public int add3(int a) { return a + 3; } ... #+END_SRC 结果如下: #+BEGIN_example DEBUG: Test01: ⇢ add3(a=7) [Thread:"main"] DEBUG: Test01: ⇠ add3 [0ms] = 10 #+END_example * 工程目录 + [[./LogTrace-Plugin][LogTrace-Plugin]] 插件 * 用法 运行gradle -b LogTrace-Plugin/deploy.gradle uploadArchives 发布 ** 用本地的仓库 #+BEGIN_SRC build.gradle apply plugin: 'logtrace' buildscript { dependencies { classpath group: 'com.logtrace', name: 'LogTrace-Plugin', version: '1.0-SNAPSHOT' } } dependencies { compile group: 'com.logtrace', name: 'LogTrace-Plugin', version: '1.0-SNAPSHOT' } sourceCompatibility = 1.8 targetCompatibility = 1.8 logtrace { enabled = true compileJavas = [compileJava] compileTestJavas = [compileJava, compileTestJava] } #+END_SRC ** 用远程仓库 #+BEGIN_SRC build.gradle apply plugin: 'java' apply plugin: 'logtrace' sourceCompatibility = 1.8 targetCompatibility = 1.8 buildscript { repositories { jcenter() maven {url "https://raw.github.com/ttt307307/mvn-repo/master/"} } dependencies { classpath group: 'com.logtrace', name: 'LogTrace-Plugin', version: '1.0-SNAPSHOT' } } allprojects { repositories { jcenter() maven {url "https://raw.github.com/ttt307307/mvn-repo/master/"} } } logtrace { enabled = true compileJavas = [compileJava] compileTestJavas = [compileTestJava] } sourceSets { main { java { srcDirs = ['src/main/java'] } resources { srcDirs = ['src/main/resources'] } } test { java { srcDirs = ['src/junit/java','src/testng/java'] } resources { srcDirs = ['src/junit/resources'] } } } dependencies { compile group: 'com.logtrace', name: 'LogTrace-Plugin', version: '1.0-SNAPSHOT' testCompile group: 'junit', name: 'junit', version: '4.11' testCompile group: 'org.testng', name: 'testng', version: '6.9.9' testCompile 'org.mockito:mockito-core:1.10.19' } #+END_SRC ** Java工程 Java工程参考 *LogTraceDemo* 和 *LogTraceDemo-Remote-Repo* #+BEGIN_SRC build.gradle sourceCompatibility = 1.8 targetCompatibility = 1.8 buildscript { repositories { jcenter() mavenCentral() } repositories { flatDir { name 'localRepository' } } repositories { localRepository { dirs '../local-repo' } } dependencies { classpath group: 'com.logtrace', name: 'LogTrace-Plugin', version: '1.0-SNAPSHOT' } } allprojects { repositories { jcenter() flatDir { name 'localRepository' } localRepository { dirs '../local-repo' } } } logtrace { enabled = true compileJavas = [compileJava] compileTestJavas = [compileJava, compileTestJava] } #+END_SRC ** Android工程 Android工程参考 *logtracedemo-and* #+BEGIN_SRC gradle apply plugin: 'com.android.application' apply plugin: 'logtrace' sourceCompatibility = 1.7 targetCompatibility = 1.7 buildscript { repositories { jcenter() mavenCentral() } repositories { flatDir { name 'localRepository' } } repositories { localRepository { dirs '../local-repo' } } dependencies { classpath group: 'com.logtrace', name: 'LogTrace-Plugin', version: '1.0-SNAPSHOT' } } allprojects { repositories { jcenter() flatDir { name 'localRepository' } localRepository { dirs '../local-repo' } } } logtrace { enabled = true } //Application project.android.applicationVariants.all { variant -> variant.each { logtrace.compileJavas.add(variant.javaCompile) } } //如果是Library //project.android.libraryVariants.all { variant -> // variant.each { // logtrace.compileJavas.add(variant.javaCompile) // } //} project.android.testVariants.all { variant -> variant.each { logtrace.compileTestJavas.add(variant.javaCompile) } } #+END_SRC * 参考: 参考[[https://github.com/JakeWharton/hugo][JakeWharton/hugo]] * 问题(TODO) - 在build.gradle中配置一个level来过滤log - 安卓闪退 java.lang.NoSuchMethodError: No virtual method getDeclaredAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; in class Ljava/lang/reflect/Method; or its super classes (declaration of 'java.lang.reflect.Method' appears in /system/framework/core-libart.jar),可能和设置的jdk版本有关,现在改为编译java文件的JDK版本为1.7