当系统出现问题时候我们首先想到的是什么——查看系统日志,通过查看系统日志获取详细的错误信息。当我们遇到问题在论坛中提问时经常被要求提供log信息。然而系统日志日积月累轻松上百M甚至超G,这时候打开日志似乎不是件容易的事情,即便是通过通过EAS这样的客户端查看Essbase日志也不是件容易的事情,滚动条拖来拖去的感觉有点恶心(往往我们只关系最后几行)。在32位win环境下可以用tail.exe 程序。去http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17657下载。
使用:
C:\DOS>tail/? 一成不变的方法,/?来查看使用帮助
usage: TAIL [switches] [filename]*
switches: [-?] display this message
[-n] display last n lines of each file (default 10)
[-f filename] keep checking filename for new lines
示例:
tail xxx.log 查看文件,默认显示最后的10行
tail -100 xxx.log 显示最后的100行
tail -f xxx.log 一直查看文件的变化
在x64环境下tail不能运行,只能开发类似小程序了,慢慢来,
1、将下面文件存为FromEndRF.java文件。
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class FromEndRF {
public static void read(String filename,int rowcount) {
read(filename,rowcount, "GBK");
}
public static void read(String filename,int rowcount, String charset) {
RandomAccessFile rf = null;
try {
rf = new RandomAccessFile(filename, "r");
long len = rf.length();
long start = rf.getFilePointer();
long nextend = start + len - 1;
int rt=rowcount;
String line;
rf.seek(nextend);
int c = -1;
while ((nextend > start) && (rt>0)) {
c = rf.read();
if (c == '\n' || c == '\r') {
line = rf.readLine();
if (line != null) {
System.out.println(new String(line.getBytes("ISO-8859-1"), charset));
rt--;
}/*else {
System.out.println(line);
}*/
nextend--;
}
nextend--;
rf.seek(nextend);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (rf != null)
rf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
if (args.length < 2){
System.out.println("usege: java FromEndRF filename Rowcount");}
else{
String fn = args[0];
String row = args[1];
try {
int ln = Integer.parseInt(row);
/*"E:/Oracle/Middleware/user_projects/epmsystem1/diagnostics/logs/essbase/essbase_0/qESSBASE_ODL.log"*/
read(fn,ln, "gbk");
} catch (Exception e){
System.out.println("usege: java FromEndRF filename Rowcount");
}
}
}
}
2、用java编译并打包
在命令行键入:javac FromEndRF.java
这时候系统将生产FromEndRF.class文件。
在命令行键入:jar cvf FromEndRF.jar FromEndRF.class
这时候系统将生产FromEndRF.jar 文件。用winRAR之类的压缩软件打开FromEndRF.jar文件,编辑META-INF路径下的MANIFEST.MF用notepad 之类的文字编辑工具,在最后加入一行Main-Class: FromEndRF,将修改后的文件保存回jar文件。
3、调用
在命令行键入: java -jar FromEndRF.jar filename rowcount
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7477027/viewspace-705502/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7477027/viewspace-705502/