2 lakers08 Lakers08 于 2015.07.07 17:23 提问

java读取日志文件,从获取的一段话中提取重要信息

获取用户名,如infodba;获取操作时间;获取操作,如delete或者已删除;获取被操作的对象,最后面的字段,最好把那个计算机名也获取到

图片说明

7个回答

zhangweigangweiwu
zhangweigangweiwu   2015.07.08 17:01

通过配置是不可能得到你想要的 必须进行字符串截取

Lakers08
Lakers08 谢谢大神!!!我很赞同!!!
2 年多之前 回复
Lakers08
Lakers08   2015.07.07 17:25

其实就是那一句话如何断句并把有用的信息提取出来

yuke198907
yuke198907   2015.07.07 17:58

以“-”分割啊,得到的数组长度是3的倍数,0是前面的2003,1是中间的信息,2是结果的信息

Lakers08
Lakers08 分割后再去提取,怎么提取?还有什么更好的办法吗?
2 年多之前 回复
ltw518726
ltw518726   2015.07.07 17:59

这个不用特意的去写;你可以通过配置log4j.xml文件,然后直接在要输出的日志地方分别用info、debug、error、warn输出日志就可以了。

Lakers08
Lakers08 这个日志文件是客户端自动产生的。不知道怎么配置!求大神指点
2 年多之前 回复
Lakers08
Lakers08 这个日志文件是客户端自动产生的。不知道怎么配置!求大神指点
2 年多之前 回复
Lakers08
Lakers08 这个日志文件是客户端自动产生的。不知道怎么配置!求大神指点
2 年多之前 回复
Lakers08
Lakers08 这个日志文件是客户端自动产生的。不知道怎么配置!求大神指点
2 年多之前 回复
Lakers08
Lakers08 这个日志文件是客户端自动产生的。不知道怎么配置!求大神指点
2 年多之前 回复
Lakers08
Lakers08 这个日志文件是客户端自动产生的。不知道怎么配置!求大神指点
2 年多之前 回复
frank_20080215
frank_20080215   2015.07.07 18:05

用String.substring(...) 方法处理

Lakers08
Lakers08 infodba这些是会变的
2 年多之前 回复
tongyi55555
tongyi55555   2015.07.08 09:37

不知道你的”infodba这些是会变的“是什么意思?如果你的log如你给的图一样,我觉得是不是就是遍历整个log文件,然后每行跟你的关键字进行匹配,比如关键字为“已删除”,如果该行包含整个关键字就提取出来,然后解析这一行的数据;

解析数据的前提是你的每一行数据的结构是不变的,比如开头都是2003,然后是空格-空格等等,只要这些结构不变,就可以用空格进行分割了,然后再找你想要的信息所在的下标就行。

sehui3
sehui3 回复Lakers08: 大神 求教啊 怎么用关键字 已删除去匹配 然后可以取出这一行 意思我懂就是具体代码不懂怎么写啊
2 年多之前 回复
Lakers08
Lakers08 真棒!!!谢谢你!!!!!!
2 年多之前 回复
Lakers08
Lakers08 真棒!!!谢谢你!!!!!!
2 年多之前 回复
tongyi55555
tongyi55555   2015.08.13 05:47

这个就是基本的数据读取和字符串匹配,读取使用BufferedReader,按行读取,比较使用字符串的contains方法,比如

File srcFile = new File("你的日志文件路径");
InputStreamReader isr = new InputStreamReader(new FileInputStream(
                    srcFile));
            BufferedReader br = new BufferedReader(isr);
            String line = br.readLine();
            List<String> resultList = new ArrayList<String>();
            while (line != null) {
                if (line.contains("已删除")) {
                        resultList.add(line); //将找到的一行放到List中
                }
            }
            //最后遍历resultList就是你要的“已删除”的行。
Csdn user default icon
上传中...
上传图片
插入图片