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检查工具的更多相关文章

  1. Intellij Idea 工具在java文件中如何避免 import .*包

    Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...

  2. Java项目中使用log记录日志的一些总结

    本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...

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

    JAVA文件中获取路径及WEB应用程序获取路径方法 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了tes ...

  4. 一个.java文件中可以有几个同级类

    1.在一个.java文件中可以有几个类.修饰符只可以public abstract final和无修饰符,不能是其他的private等修饰符.2.public修饰的只能有一个,且要与文件名相同 若没有 ...

  5. Java文件中为什么只能有一个public修饰的类, 并且类名还必须与文件名相同

    当编写一个java源代码文件时,此文件通常被称为编译单元(有时也被称为转译单元).每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类,该类的名称必须与文件的名称相同(包 ...

  6. Android开发过程中在sh,py,mk文件中添加log信息的方法

    Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...

  7. Alt+Shift+R组合键,用来在一个java文件中批量的重命名变量。

    myeclipse和eclipse集成编译软件,都提供了一个快捷键用来批量重命名变量:Alt+Shift+R组合键,用来在一个java文件中批量的重命名变量.扩展知识:如果想要重命名文件名,又不想手动 ...

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

    前段时间,有个同事问到我这个问题:一个.java文件中是否可以有多个类? 答案:可以有多个类,但最多只能有一个被public修饰的class. 且若这个.java文件中有一个public类型的clas ...

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

    一个java文件中可以有任意多个类,接口或是注解..但是只能有一个类是public的,而且这个类的名字要和文件同名,比如public类名为A则文件名就应当为A.java

随机推荐

  1. Calendar的问题

    1. include file is not work now. remove <!-- #include file="Calendar.js" -->, add &l ...

  2. servlet 笔记

    Servlet的作用是接收浏览器传给服务端的请求(request),并将服务端处理完的响应(response)返回给用户的浏览器,浏览器和服务端之间通过http协议进行沟通,其过程是浏览器根据用户的选 ...

  3. 20145227 《Java程序设计》第5周学习总结

    20145227 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 异常处理 8.1 语法与继承结构 1.使用try .catch java中所有错误都会被打包为对象,可以尝试 ...

  4. Oracle中左右外连接详解

    数据表的连接有:  1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两 ...

  5. ACM题目————Find them, Catch them

    Description The police office in Tadu City decides to say ends to the chaos, as launch actions to ro ...

  6. PHP获取手机相关信息

    该PHP操作类实现获取手机号手机头信息,取UA,取得手机类型,判断是否是opera,判断是否是m3gate,取得HA,取得手机IP 代码如下: <?php /** * @desc 手机操作类 获 ...

  7. H - Solve this interesting problem 分类: 比赛 2015-07-29 21:06 15人阅读 评论(0) 收藏

    Have you learned something about segment tree? If not, don't worry, I will explain it for you.  Segm ...

  8. js post提交页面

    function post(URL, PARAMS) { var temp = document.createElement("form"); temp.action = URL; ...

  9. JAVA基础知识之多线程——线程的生命周期(状态)

    线程有五个状态,分别是新建(New).就绪(Runnable).运行(Running).阻塞(Blocked)和死亡(Dead). 新建和就绪 程序使用new会新建一个线程,new出的对象跟普通对象一 ...

  10. SQL Server中常用的SQL语句

    1.概述 名词 笛卡尔积.主键.外键 数据完整性 实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空 参照完整性:表中的外键取值为空或参照表中的主键 用户定义完整性:取值范围或非空限制,例 ...