如何快速在service类中添加日志logger

    链接地址:http://www.xx566.com/detail/28.html

    好吧,系统开发即将结束的时候,发现以前手懒没有在service记录日志,项目中使用的是大众化的log4j。

    现在几十个serviceimpl,需要加上 private static final Logger logger = Logger.getLogger(ServiceImpl.class),并且导入包import org.apache.log4j.Logger,真是一个体力活,不过在文件里一个一个添加真的是好麻烦,想想其他方法看能不能偷懒。   

    于是就想在指定目录下,批量修改serviceimpl,自动添加那两行代码;代码如下:

/**
 * 给指定路径下的所有java类添加LOGGER
 * 
 * @Title: generateLogger
 * @author Realfighter
 * @param path
 *            void
 */
public static void generateLogger(String path) {
    File file = new File(path);
    String test[] = file.list();
    for (int i = 0; i < test.length; i++) {
        if (test[i].endsWith(".java")) {
            String filename = path + "\\" + test[i];
            String content = "\n\tpublic static final Logger LOGGER = Logger.getLogger("
                    + test[i].split(".java")[0] + ".class);\n}";
            try {
                RandomAccessFile randomFile = new RandomAccessFile(
                        filename, "rw");
                long filelength = randomFile.length();
                int count = 0;
                String sb = "";
                while (randomFile.getFilePointer() < filelength) {
                    count++;
                    String s = randomFile.readLine();
                    // String s = new String(randomFile.readLine().getBytes(
                    // "ISO8859-1"), "UTF-8");
                    if (count == 2) {
                        sb += "import org.apache.log4j.Logger;\n";
                    } else {
                        sb += s + "\n";
                    }
                }
                int endIndex = sb.lastIndexOf("}");
                sb = sb.substring(0, endIndex) + content;
                // System.out.println(sb);
                String sbs = new String(sb.getBytes("ISO8859-1"), "UTF-8");
                // System.out.println(sbs);
                /**
                 * 这里不使用randomFile写入文件,出现乱码
                 * 
                    randomFile.seek(0);
                    randomFile.writeBytes(sb);
                    randomFile.write(sbs.getBytes("UTF-8"));
                 */
                randomFile.close();
                /**
                 * BufferedWriter写入
                 */
                File newfile = new File(filename);
                if (newfile.exists())
                    newfile.delete();
                newfile.createNewFile();
                BufferedWriter br = new BufferedWriter(
                        new OutputStreamWriter(
                                new FileOutputStream(newfile)));
                br.write(sbs);
                br.newLine();
                br.flush();
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

    好吧,现在每个serviceimpl里面都已经引入了logger,具体方法的哪些地方需要即开始日志,只能手动添加了

转载于:https://my.oschina.net/realfighter/blog/349577

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值