Skip to content

Instantly share code, notes, and snippets.

@anonomis
Created April 8, 2011 09:48

Revisions

  1. simlan revised this gist Apr 8, 2011. 1 changed file with 16 additions and 18 deletions.
    34 changes: 16 additions & 18 deletions main/LogReader.java
    Original file line number Diff line number Diff line change
    @@ -18,20 +18,23 @@
    * log4jfiles and show in applet with a table jtable with columns that you can
    * resize columns.
    *
    * assumes log4j standard output for logs created in 2011:
    * <code>
    * assumes log4j standard output for logs created in 2011: <code>
    * 2011-MMM-DD HH:MM:SS com.package class method
    * LEVEL: TEXT
    * ADDITIONAL TEXT
    * ADDITIONAL TEXT
    * ADDITIONAL TEXT
    * 2011-MMM-DD HH:MM:SS com.package class method
    * LEVEL: TEXT
    * </code>
    * and so on
    * </code> and so on
    */
    public class LogReader extends JApplet {

    /**
    *
    */
    private static final long serialVersionUID = 1L;

    private final class RunnableImplementation implements Runnable {
    private static final String LOG_FILE_URI = "file:///somefile.log";
    private final JTable table;
    @@ -51,21 +54,19 @@ public void run() {
    if (f.length() > lengthRead) {
    BufferedReader br = new BufferedReader(new FileReader(f));

    DefaultTableModel model = (DefaultTableModel) table
    .getModel();
    DefaultTableModel model = (DefaultTableModel) table.getModel();
    while (br.ready()) {
    String readLine = br.readLine();
    while (br.ready()) {
    if (readLine.startsWith("2011-")) {
    String time = readLine.subSequence(12, 20)
    .toString();
    String time = readLine.subSequence(12, 20).toString();

    String rest = readLine.substring(20);
    Pattern p = Pattern.compile("[A-Z]");
    String[] split = p.split(rest);
    String packagee = split[0].substring(split[0]
    .indexOf(".") + 1);
    String[] split2 = rest.substring(split[0].length())
    .split(" ");
    String packagee = split[0].substring(split[0].indexOf(".") + 1);

    String[] split2 = rest.substring(split[0].length()).split(" ");
    String clazz = split2[0];
    String method = split2[1];

    @@ -78,19 +79,16 @@ public void run() {
    text = text.concat(string);
    }

    model.insertRow(0, new Object[] { level, time,
    packagee, clazz, method, text });
    model.insertRow(0, new Object[] { level, time, packagee, clazz, method, text });

    readLine = br.readLine();
    while (!readLine.startsWith("2011-") && br.ready()) {
    text = readLine;
    readLine = br.readLine();
    model.insertRow(0, new Object[] { "", "", "", "",
    "", text });
    model.insertRow(0, new Object[] { "", "", "", "", "", text });
    }
    } else {
    throw new RuntimeException("parse error :'"
    + readLine + "'");
    throw new RuntimeException("parse error :'" + readLine + "'");
    }

    }
  2. simlan revised this gist Apr 8, 2011. 1 changed file with 19 additions and 3 deletions.
    22 changes: 19 additions & 3 deletions main/LogReader.java
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,23 @@
    import javax.swing.table.DefaultTableModel;

    /**
    * Absurdly simple Log4j parser applet.
    * A simple java swing applet japplet, that makes a table a jtable and fills its
    * columns and rows with parsed log4j data from a log file which it parses a
    * parser for such log files so it is a log reader which can parse logfiles
    * log4jfiles and show in applet with a table jtable with columns that you can
    * resize columns.
    *
    * assumes log4j standard output for logs created in 2011:
    * <code>
    * 2011-MMM-DD HH:MM:SS com.package class method
    * LEVEL: TEXT
    * ADDITIONAL TEXT
    * ADDITIONAL TEXT
    * ADDITIONAL TEXT
    * 2011-MMM-DD HH:MM:SS com.package class method
    * LEVEL: TEXT
    * </code>
    * and so on
    */
    public class LogReader extends JApplet {

    @@ -40,7 +56,7 @@ public void run() {
    while (br.ready()) {
    String readLine = br.readLine();
    while (br.ready()) {
    if (readLine.startsWith("2011")) {
    if (readLine.startsWith("2011-")) {
    String time = readLine.subSequence(12, 20)
    .toString();
    String rest = readLine.substring(20);
    @@ -66,7 +82,7 @@ public void run() {
    packagee, clazz, method, text });

    readLine = br.readLine();
    while (!readLine.startsWith("2011") && br.ready()) {
    while (!readLine.startsWith("2011-") && br.ready()) {
    text = readLine;
    readLine = br.readLine();
    model.insertRow(0, new Object[] { "", "", "", "",
  3. simlan renamed this gist Apr 8, 2011. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  4. anonomis revised this gist Apr 8, 2011. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions LogReader.java
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,9 @@
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;

    /**
    * Absurdly simple Log4j parser applet.
    */
    public class LogReader extends JApplet {

    private final class RunnableImplementation implements Runnable {
  5. @invalid-email-address Anonymous revised this gist Apr 8, 2011. 1 changed file with 102 additions and 89 deletions.
    191 changes: 102 additions & 89 deletions LogReader.java
    Original file line number Diff line number Diff line change
    @@ -13,94 +13,107 @@

    public class LogReader extends JApplet {

    public LogReader() {

    String data[][] = {};
    String col[] = { "level", "date", "package", "class", "method", "text" };
    DefaultTableModel model = new DefaultTableModel(data, col);
    final JTable table = new JTable(model);
    table.setSize(1100, 650);
    JScrollPane pane = new JScrollPane(table);
    pane.setSize(1100, 650);

    table.getColumnModel().getColumn(0).setMaxWidth(35);
    table.getColumnModel().getColumn(1).setMaxWidth(65);
    table.getColumnModel().getColumn(2).setPreferredWidth(128);
    table.getColumnModel().getColumn(2).setResizable(false);
    table.getColumnModel().getColumn(3).setPreferredWidth(128);
    table.getColumnModel().getColumn(4).setPreferredWidth(128);
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);

    this.add(pane);

    Runnable d = new Runnable() {

    @Override
    public void run() {
    try {
    File f = new File(
    new URI(
    "file:///home..."));

    long lengthRead = 0;

    while (true != false) {
    if (f.length() > lengthRead) {
    BufferedReader br = new BufferedReader(new FileReader(f));

    DefaultTableModel model = (DefaultTableModel) table.getModel();
    while (br.ready()) {
    String readLine = br.readLine();
    while (br.ready()) {
    if (readLine.startsWith("2011")) {
    String time = readLine.subSequence(12, 20).toString();
    String rest = readLine.substring(20);
    Pattern p = Pattern.compile("[A-Z]");
    String[] split = p.split(rest);
    String packagee = split[0].substring(split[0].indexOf(".") + 1);
    String[] split2 = rest.substring(split[0].length()).split(" ");
    String clazz = split2[0];
    String method = split2[1];

    readLine = br.readLine();

    split = readLine.split(":");
    String level = split[0];
    String text = split[1];
    for (String string : split) {
    text = text.concat(string);
    }

    model.insertRow(0, new Object[] { level, time, packagee, clazz, method, text });

    readLine = br.readLine();
    while (!readLine.startsWith("2011") && br.ready()) {
    text = readLine;
    readLine = br.readLine();
    model.insertRow(0, new Object[] { "", "", "", "", "", text });
    }
    } else {
    throw new RuntimeException("parse error :'" + readLine + "'");
    }

    }

    }

    lengthRead = f.length();
    }
    Thread.sleep(10L);
    }
    } catch (Exception e) {
    throw new RuntimeException(e);
    }
    }
    };

    Thread th = new Thread(d);
    th.start();

    }
    private final class RunnableImplementation implements Runnable {
    private static final String LOG_FILE_URI = "file:///somefile.log";
    private final JTable table;

    private RunnableImplementation(JTable table) {
    this.table = table;
    }

    @Override
    public void run() {
    try {
    File f = new File(new URI(LOG_FILE_URI));

    long lengthRead = 0;

    while (true != false) {
    if (f.length() > lengthRead) {
    BufferedReader br = new BufferedReader(new FileReader(f));

    DefaultTableModel model = (DefaultTableModel) table
    .getModel();
    while (br.ready()) {
    String readLine = br.readLine();
    while (br.ready()) {
    if (readLine.startsWith("2011")) {
    String time = readLine.subSequence(12, 20)
    .toString();
    String rest = readLine.substring(20);
    Pattern p = Pattern.compile("[A-Z]");
    String[] split = p.split(rest);
    String packagee = split[0].substring(split[0]
    .indexOf(".") + 1);
    String[] split2 = rest.substring(split[0].length())
    .split(" ");
    String clazz = split2[0];
    String method = split2[1];

    readLine = br.readLine();

    split = readLine.split(":");
    String level = split[0];
    String text = split[1];
    for (String string : split) {
    text = text.concat(string);
    }

    model.insertRow(0, new Object[] { level, time,
    packagee, clazz, method, text });

    readLine = br.readLine();
    while (!readLine.startsWith("2011") && br.ready()) {
    text = readLine;
    readLine = br.readLine();
    model.insertRow(0, new Object[] { "", "", "", "",
    "", text });
    }
    } else {
    throw new RuntimeException("parse error :'"
    + readLine + "'");
    }

    }

    }

    lengthRead = f.length();
    }
    Thread.sleep(10L);
    }
    } catch (Exception e) {
    throw new RuntimeException(e);
    }
    }
    }

    public LogReader() {

    String data[][] = {};
    String col[] = { "level", "date", "package", "class", "method", "text" };
    DefaultTableModel model = new DefaultTableModel(data, col);
    final JTable table = new JTable(model);
    table.setSize(1100, 650);
    JScrollPane pane = new JScrollPane(table);
    pane.setSize(1100, 650);

    table.getColumnModel().getColumn(0).setMaxWidth(35);
    table.getColumnModel().getColumn(1).setMaxWidth(65);
    table.getColumnModel().getColumn(2).setPreferredWidth(128);
    table.getColumnModel().getColumn(2).setResizable(false);
    table.getColumnModel().getColumn(3).setPreferredWidth(128);
    table.getColumnModel().getColumn(4).setPreferredWidth(128);
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);

    this.add(pane);

    Runnable d = new RunnableImplementation(table);

    Thread th = new Thread(d);
    th.start();

    }

    }
  6. @invalid-email-address Anonymous revised this gist Apr 8, 2011. 1 changed file with 1 addition and 15 deletions.
    16 changes: 1 addition & 15 deletions LogReader.java
    Original file line number Diff line number Diff line change
    @@ -15,11 +15,6 @@ public class LogReader extends JApplet {

    public LogReader() {

    // JTable jTable = new JTable(40, 4);
    // JPanel panel = new JPanel();
    // panel.setSize(1100, 650);
    // this.add(panel);
    // this.add(jTable);
    String data[][] = {};
    String col[] = { "level", "date", "package", "class", "method", "text" };
    DefaultTableModel model = new DefaultTableModel(data, col);
    @@ -37,15 +32,6 @@ public LogReader() {
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);

    // Insert first position
    // model.insertRow(0, new Object[] { "Ranjan", "50" });
    // // Insert 4 position
    // for (int i = 0; i < 100000; i++) {
    // model.insertRow(3, new Object[] { "Amar", "600" });
    // }
    // // Insert last position
    // model.insertRow(table.getRowCount(), new Object[] { "Sushil", "600"
    // });
    this.add(pane);

    Runnable d = new Runnable() {
    @@ -55,7 +41,7 @@ public void run() {
    try {
    File f = new File(
    new URI(
    "file:///home/simon/code/git/musikdestination-tomcat/apache-tomcat-6.0.32-portal/logs/catalina.2011-04-07.log"));
    "file:///home..."));

    long lengthRead = 0;

  7. @invalid-email-address Anonymous created this gist Apr 8, 2011.
    120 changes: 120 additions & 0 deletions LogReader.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,120 @@
    package main;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.net.URI;
    import java.util.regex.Pattern;

    import javax.swing.JApplet;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;

    public class LogReader extends JApplet {

    public LogReader() {

    // JTable jTable = new JTable(40, 4);
    // JPanel panel = new JPanel();
    // panel.setSize(1100, 650);
    // this.add(panel);
    // this.add(jTable);
    String data[][] = {};
    String col[] = { "level", "date", "package", "class", "method", "text" };
    DefaultTableModel model = new DefaultTableModel(data, col);
    final JTable table = new JTable(model);
    table.setSize(1100, 650);
    JScrollPane pane = new JScrollPane(table);
    pane.setSize(1100, 650);

    table.getColumnModel().getColumn(0).setMaxWidth(35);
    table.getColumnModel().getColumn(1).setMaxWidth(65);
    table.getColumnModel().getColumn(2).setPreferredWidth(128);
    table.getColumnModel().getColumn(2).setResizable(false);
    table.getColumnModel().getColumn(3).setPreferredWidth(128);
    table.getColumnModel().getColumn(4).setPreferredWidth(128);
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);
    table.getColumnModel().getColumn(5).setPreferredWidth(1000);

    // Insert first position
    // model.insertRow(0, new Object[] { "Ranjan", "50" });
    // // Insert 4 position
    // for (int i = 0; i < 100000; i++) {
    // model.insertRow(3, new Object[] { "Amar", "600" });
    // }
    // // Insert last position
    // model.insertRow(table.getRowCount(), new Object[] { "Sushil", "600"
    // });
    this.add(pane);

    Runnable d = new Runnable() {

    @Override
    public void run() {
    try {
    File f = new File(
    new URI(
    "file:///home/simon/code/git/musikdestination-tomcat/apache-tomcat-6.0.32-portal/logs/catalina.2011-04-07.log"));

    long lengthRead = 0;

    while (true != false) {
    if (f.length() > lengthRead) {
    BufferedReader br = new BufferedReader(new FileReader(f));

    DefaultTableModel model = (DefaultTableModel) table.getModel();
    while (br.ready()) {
    String readLine = br.readLine();
    while (br.ready()) {
    if (readLine.startsWith("2011")) {
    String time = readLine.subSequence(12, 20).toString();
    String rest = readLine.substring(20);
    Pattern p = Pattern.compile("[A-Z]");
    String[] split = p.split(rest);
    String packagee = split[0].substring(split[0].indexOf(".") + 1);
    String[] split2 = rest.substring(split[0].length()).split(" ");
    String clazz = split2[0];
    String method = split2[1];

    readLine = br.readLine();

    split = readLine.split(":");
    String level = split[0];
    String text = split[1];
    for (String string : split) {
    text = text.concat(string);
    }

    model.insertRow(0, new Object[] { level, time, packagee, clazz, method, text });

    readLine = br.readLine();
    while (!readLine.startsWith("2011") && br.ready()) {
    text = readLine;
    readLine = br.readLine();
    model.insertRow(0, new Object[] { "", "", "", "", "", text });
    }
    } else {
    throw new RuntimeException("parse error :'" + readLine + "'");
    }

    }

    }

    lengthRead = f.length();
    }
    Thread.sleep(10L);
    }
    } catch (Exception e) {
    throw new RuntimeException(e);
    }
    }
    };

    Thread th = new Thread(d);
    th.start();

    }

    }
    Empty file added gistfile2.txt
    Empty file.