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
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * 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.

Author(s):
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();
         setJMenuBar(menuBar);
         final JMenu menu = new JMenu("File");
         menuBar.add(menu);
 
         try {
             final LoadXMLAction lxa = new LoadXMLAction(thismodel);
             final JMenuItem loadMenuItem = new JMenuItem("Load file...");
             menu.add(loadMenuItem);
             loadMenuItem.addActionListener(lxa);
         } catch (NoClassDefFoundError e) {
             .info("Missing classes for XML parser"e);
             JOptionPane.showMessageDialog(
                 this,
                 "XML parser not in classpath - unable to load XML events.",
                 "CHAINSAW",
                 .);
         } catch (Exception e) {
             .info("Unable to create the action to load XML files"e);
             JOptionPane.showMessageDialog(
                 this,
                 "Unable to create a XML parser - unable to load XML events.",
                 "CHAINSAW",
                 .);
         }
 
         final JMenuItem exitMenuItem = new JMenuItem("Exit");
         menu.add(exitMenuItem);
         exitMenuItem.addActionListener(.);
 
         // Add control panel
         final ControlPanel cp = new ControlPanel(model);
         getContentPane().add(cp.);
 
        // 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);
        getContentPane().add(jsp.);
        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent aEvent) {
                    ..actionPerformed(null);
                }
            });
        pack();
        setVisible(true);
        setupReceiver(model);
    }

    
Setup recieving messages.

Parameters:
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 + ".");
                JOptionPane.showMessageDialog(
                    this,
                    "Unable to parse port number from '" + strRep +
                    "', quitting.",
                    "CHAINSAW",
                    .);
                System.exit(1);
            }
        }
        try {
            final LoggingReceiver lr = new LoggingReceiver(aModelport);
            lr.start();
        } catch (IOException e) {
            .fatal("Unable to connect to socket server, quiting"e);
            JOptionPane.showMessageDialog(
                this,
                "Unable to create socket on port " + port + ", quitting.",
                "CHAINSAW",
                .);
            System.exit(1);
        }
    }
    ////////////////////////////////////////////////////////////////////////////
    // static methods
    ////////////////////////////////////////////////////////////////////////////


    
initialise log4j
    private static void initLog4J() {
        final Properties props = new Properties();
        props.setProperty("log4j.rootLogger""DEBUG, A1");
        props.setProperty("log4j.appender.A1",
                          "org.apache.log4j.ConsoleAppender");
        props.setProperty("log4j.appender.A1.layout",
                          "org.apache.log4j.TTCCLayout");
        PropertyConfigurator.configure(props);
    }

    
The main method.

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