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检查工具的更多相关文章
- Intellij Idea 工具在java文件中如何避免 import .*包
Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...
- Java项目中使用log记录日志的一些总结
本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...
- JAVA文件中获取路径及WEB应用程序获取路径方法
JAVA文件中获取路径及WEB应用程序获取路径方法 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了tes ...
- 一个.java文件中可以有几个同级类
1.在一个.java文件中可以有几个类.修饰符只可以public abstract final和无修饰符,不能是其他的private等修饰符.2.public修饰的只能有一个,且要与文件名相同 若没有 ...
- Java文件中为什么只能有一个public修饰的类, 并且类名还必须与文件名相同
当编写一个java源代码文件时,此文件通常被称为编译单元(有时也被称为转译单元).每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类,该类的名称必须与文件的名称相同(包 ...
- Android开发过程中在sh,py,mk文件中添加log信息的方法
Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...
- Alt+Shift+R组合键,用来在一个java文件中批量的重命名变量。
myeclipse和eclipse集成编译软件,都提供了一个快捷键用来批量重命名变量:Alt+Shift+R组合键,用来在一个java文件中批量的重命名变量.扩展知识:如果想要重命名文件名,又不想手动 ...
- 一个.java文件中是否可以有多个类
前段时间,有个同事问到我这个问题:一个.java文件中是否可以有多个类? 答案:可以有多个类,但最多只能有一个被public修饰的class. 且若这个.java文件中有一个public类型的clas ...
- 可以在一个.java文件中写两个类吗?
一个java文件中可以有任意多个类,接口或是注解..但是只能有一个类是public的,而且这个类的名字要和文件同名,比如public类名为A则文件名就应当为A.java
随机推荐
- [转]vs2008安装失败的总结与分享
转自:http://www.cnblogs.com/rockdean/archive/2010/01/13/1646851.html 今天系统是刚装的,今儿个也不是第一次装系统,也不是第一次装vs20 ...
- [转]centos中wget的使用方法
本文转自 http://www.cnblogs.com/chusiping/archive/2011/11/10/2243805.html 和 http://www.jb51.net/os/RedHa ...
- PHP弱类型安全问题的写法和步骤
鉴于目前PHP是世界上最好的语言,PHP本身的问题也可以算作是web安全的一个方面.在PHP中的特性就是弱类型,以及内置函数对于传入参数的松散处理.本篇文章主要就是记录我在做攻防平台上面遇到的PHP的 ...
- ecstore2.0数据库词典
数据库词典= 数据库tables列表 =|| Name | Comment ||| sdb_aftersales_return_product | 售后申请 || sdb_b2c_brand | 商品 ...
- 《Linux/Unix系统编程手册》
TCP的TIME_WAIT状态,超时时间为2倍MSL(IP报文超过TTL前最大生存时间,BSD规范为30s,RFC1122建议为2分钟).
- java 模拟消息的发送功能
import java.util.HashMap; import java.util.Iterator; import java.util.Map; /* * 完成消息的发送功能 * 在发送消息之前, ...
- 杭电1020-Encoding
Problem Description Given a string containing only 'A' - 'Z', we could encode it using the following ...
- Windows下Apache+mod_python+Django配置
Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...
- 发现一个jq的问题
用jq对checkbox的checked属性进行操作时,使用$(‘#id’).attr(‘checked’, true);竟然无效,改成$(‘#id’).prop(‘checked’, true);才 ...
- openmp在图像处理上面的运用
// openmptest的测试程序 // #include "stdafx.h" void Test(int n){ for (int i=0;i<1000 ...