Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
 package org.apache.log4j.chainsaw;
The main application.

Oliver Burn
 public class Main
     extends JFrame
the default port number to listen on
     private static final int DEFAULT_PORT = 4445;

name of property for port name
     public static final String PORT_PROP_NAME = "chainsaw.port";

use to log messages
     private static final Logger LOG = Logger.getLogger(Main.class);

Creates a new Main instance.
     private Main() {
         super("CHAINSAW - Log4J Log Viewer");
         // create the all important model
         final MyTableModel model = new MyTableModel();
         //Create the menu bar.
         final JMenuBar menuBar = new JMenuBar();
         final JMenu menu = new JMenu("File");
         try {
             final LoadXMLAction lxa = new LoadXMLAction(thismodel);
             final JMenuItem loadMenuItem = new JMenuItem("Load file...");
         } catch (NoClassDefFoundError e) {
             .info("Missing classes for XML parser"e);
                 "XML parser not in classpath - unable to load XML events.",
         } catch (Exception e) {
             .info("Unable to create the action to load XML files"e);
                 "Unable to create a XML parser - unable to load XML events.",
         final JMenuItem exitMenuItem = new JMenuItem("Exit");
         // Add control panel
         final ControlPanel cp = new ControlPanel(model);
        // Create the table
        final JTable table = new JTable(model);
        final JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setBorder(BorderFactory.createTitledBorder("Events: "));
        scrollPane.setPreferredSize(new Dimension(900, 300));
        // Create the details
        final JPanel details = new DetailPanel(tablemodel);
        details.setPreferredSize(new Dimension(900, 300));
        // Add the table and stack trace into a splitter
        final JSplitPane jsp =
            new JSplitPane(.scrollPanedetails);
        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent aEvent) {

Setup recieving messages.

aModel a MyTableModel value
    private void setupReceiver(MyTableModel aModel) {
        int port = ;
        final String strRep = System.getProperty();
        if (strRep != null) {
            try {
                port = Integer.parseInt(strRep);
            } catch (NumberFormatException nfe) {
                .fatal("Unable to parse " +  +
                          " property with value " + strRep + ".");
                    "Unable to parse port number from '" + strRep +
                    "', quitting.",
        try {
            final LoggingReceiver lr = new LoggingReceiver(aModelport);
        } catch (IOException e) {
            .fatal("Unable to connect to socket server, quiting"e);
                "Unable to create socket on port " + port + ", quitting.",
    // static methods

initialise log4j
    private static void initLog4J() {
        final Properties props = new Properties();
        props.setProperty("log4j.rootLogger""DEBUG, A1");

The main method.

aArgs ignored
    public static void main(String[] aArgs) {
        new Main();
New to GrepCode? Check out our FAQ X