Andoid java文件中的Log检查工具

AndroidLogChecker

由于发布软件版本的时候我们需要把Log注释掉,此工具可以检查java类中的Log所在行以及是否已经注释。

Github: https://github.com/cumtkangyi/AndroidLogChecker

package com.leo.kang.tools;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class AndroidLogChecker {
    static List<File> fileList;

    public static void main(String[] args) {
	fileList = new ArrayList<File>();
	// 递归显示D:test\\src下所有文件夹及其中文件
	File root = new File("D:test\\src");
	try {
	    getAllFiles(root);
	    for (File file : fileList) {
		readFileByLine(file);
	    }
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
    }

    /**
     * Get all files
     *
     * @author: yi.kang
     * @date: 2014年7月31日 下午8:05:25
     * @param dir
     * @throws Exception
     */
    final static void getAllFiles(File dir) throws Exception {
	File[] fs = dir.listFiles();
	if (fileList == null) {
	    fileList = new ArrayList<File>();
	}
	String path = "";
	for (int i = 0; i < fs.length; i++) {
	    path = fs[i].getAbsolutePath();

	    //
	    if (!fs[i].isDirectory() && path.contains(".java")
		    && path.substring(path.lastIndexOf(".")).contains("java")) {
		fileList.add(fs[i]);
	    }
	    if (fs[i].isDirectory()) {
		try {
		    getAllFiles(fs[i]);
		} catch (Exception e) {
		    e.printStackTrace();
		}
	    }
	}
    }

    /**
     * Read file line by line
     *
     * @author: yi.kang
     * @date: 2014年7月31日 下午8:06:20
     * @param file
     */
    public static void readFileByLine(File file) {
	try {
	    // read file content from file
	    // StringBuffer sb = new StringBuffer("");
	    String fileName = file.getAbsolutePath();
	    FileReader reader = new FileReader(fileName);
	    BufferedReader br = new BufferedReader(reader);

	    String str = null;

	    int line = 0;

	    while ((str = br.readLine()) != null) {
		line++;
		if (str.contains("Log.i(") || str.contains("Log.d(")
			|| str.contains("Log.w(") || str.contains("Log.v(")
			|| str.contains("Log.e(")) {
		    // sb.append(fileName.substring(fileName.lastIndexOf("\\") +
		    // 1)
		    // + "  line " + line + "  " + str.trim() + "/n");

		    System.out.println(fileName.substring(fileName
			    .lastIndexOf("\\") + 1)
			    + "  line "
			    + line
			    + "  "
			    + str.trim().replaceAll("\\s", ""));
		}
	    }

	    br.close();
	    reader.close();

	    // write string to file
	    // FileWriter writer = new FileWriter("c://test2.txt");
	    // BufferedWriter bw = new BufferedWriter(writer);
	    // bw.write(sb.toString());

	    // bw.close();
	    // writer.close();
	} catch (FileNotFoundException e) {
	    e.printStackTrace();
	} catch (IOException e) {
	    e.printStackTrace();
	}
    }
}

  

Andoid java文件中的Log检查工具

时间: 2024-08-28 19:02:59

Andoid java文件中的Log检查工具的相关文章

JNI文件中命名类与JAVA文件中匹配

jni.c中注册中 int register_android_boa(JNIEnv *env){    jclass clazz;    static const char* const kClassName = "com/lxl/ledClass"; //命名的类 /* look up the class */    clazz = (*env)->FindClass(env,kClassName);  //  clazz = env->FindClass(env,kCl

JAVA文件中获取路径及WEB应用程序获取路径方法

原文转自:http://www.tqcto.com/article/recommend/141.html 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了test.txt文件的绝对路径: http://www.sun.com/index.htm也代表了一个URL绝对路径: `相对路径`:相对与某个基准目录的路径,包含Web的相对路径(HTML中的相对目录). 例如: 在Servlet中,"/"

一个.java文件中是否可以有多个外部类

前段时间,有个同事问到我这个问题:一个.java文件中是否可以有多个外部类? 答案:可以有多个外部类,但最多只能有一个被public修饰的class. 且若这个.java文件中有一个public类型的class,则这个class名需与.java文件名一致. 举例: 文件A.java里有如下外部类 public class A1会报错,报错信息是如下:提示public 类型的A1必须定义在它自己的文件中 因此一个java文件中是不能同时有两个public 类型的class的.

可以在一个.java文件中写两个类吗?

一个java文件中可以有任意多个类,接口或是注解..但是只能有一个类是public的,而且这个类的名字要和文件同名,比如public类名为A则文件名就应当为A.java 原文地址:https://www.cnblogs.com/Hellorxh/p/10834208.html

React Native工程中TSLint静态检查工具的探索之路

建立的代码规范没人遵守,项目中遍地风格迥异的代码,你会不会抓狂? 通过测试用例的程序还会出现Bug,而原因仅仅是自己犯下的低级错误,你会不会抓狂? 某种代码写法存在问题导致崩溃时,只能全工程检查代码,这需要人工花费大量时间Review代码,你会不会抓狂? 以上这些问题,可以通过静态检查有效地缓解! 静态检查(Static Program Analysis)主要是以不运行程序的方式对于程序源代码进行检查分析的技术,而与之相反的就是动态检查(Dynamic Program Analysis),通过实

pch文件中自定义log

1 // __OBJC__这个宏,在所有的.m和.mm文件中默认就定义了这个宏 2 #ifdef __OBJC__ 3 4 // 如果这个全局的头文件或者宏只需要在.m或者.mm文件中使用, 5 // 请把该头文件或宏写到#ifdef __OBJC__ 中 6 7 #import <UIKit/UIKit.h> 8 #import <Foundation/Foundation.h> 9 10 11 #ifdef DEBUG 12 #define NJLog(...) NSLog(_

31、SAM文件中flag含义解释工具--转载

转载:http://www.cnblogs.com/nkwy2012/p/6362996.html SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样的文件.samtools网站上有专门的文档介绍SAM文件.具体地址:http://samtools.sourceforge.net/SAM1.pdf 很多人困惑SAM文件中的第二列FLAG值是什么意思.根据文档介绍我们可以计算,但是为了方便大家,下面给大家提供一个脚本工具,大家直接输入flag值就可

eclipse中xml、jsp等,非Java文件中的注释快捷键是什么?

非Java文件,例如jsp文件.xml文件中的要想快速注释一段话的,eclipse提供了注释的快捷键: 先选定要注释的内容 然后:Ctrl+shift+c 取消注释也是先选定再快捷键 原文地址:https://www.cnblogs.com/niusdtz/p/9459543.html

java 文件中 定义一个字符串,它的默认编码是什么?

.java 文件的编码就是 String 字符串的编码 File 文件的编码就是 文件内容的编码 request 的设置的编码就是inputstream 的编码 jvm 的默认编码(the default charset of this Java virtual machine)为: import java.nio.charset.Charset; Charset.defaultCharset(); @Test public void charsetTest() { String s0 = "汉