You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by sd...@apache.org on 2004/01/03 09:04:13 UTC
cvs commit: logging-log4j/src/java/org/apache/log4j/chainsaw LogUI.java ChainsawAppender.java MyTableModel.java EventDetails.java EventDetailSink.java
sdeboy 2004/01/03 00:04:12
Modified: src/java/org/apache/log4j/chainsaw LogUI.java
ChainsawAppender.java
Removed: src/java/org/apache/log4j/chainsaw MyTableModel.java
EventDetails.java EventDetailSink.java
Log:
- removed unused classes
- removed tablemodel-related code in chainsawappender
- fixed chainsaw v2's ability to be started via chainsawappender (in-vm)
Revision Changes Path
1.71 +20 -9 logging-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java
Index: LogUI.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- LogUI.java 2 Jan 2004 21:51:58 -0000 1.70
+++ LogUI.java 3 Jan 2004 08:04:12 -0000 1.71
@@ -176,7 +176,7 @@
private ReceiversPanel receiversPanel;
private ChainsawTabbedPane tabbedPane;
private JToolBar toolbar;
- private final ChainsawStatusBar statusBar = new ChainsawStatusBar();
+ private ChainsawStatusBar statusBar;
private final ApplicationPreferenceModel applicationPreferenceModel = new ApplicationPreferenceModel();
private final ApplicationPreferenceModelPanel applicationPreferenceModelPanel = new ApplicationPreferenceModelPanel(applicationPreferenceModel);
private final Map tableModelMap = new HashMap();
@@ -309,15 +309,25 @@
}
/**
- * DOCUMENT ME!
- *
+ * Allow Chainsaw v2 to be ran in-process (configured as a ChainsawAppender)
+ * NOTE: Closing Chainsaw will NOT stop the application generating the events.
* @param appender
- * DOCUMENT ME!
+ *
*/
public void activateViewer(ChainsawAppender appender) {
- handler = new ChainsawAppenderHandler(appender);
- handler.addEventBatchListener(new NewTabEventBatchReceiver());
- activateViewer();
+ ApplicationPreferenceModel model = new ApplicationPreferenceModel();
+ SettingsManager.getInstance().configure(model);
+ applyLookAndFeel(model.getLookAndFeelClassName());
+
+ handler = new ChainsawAppenderHandler(appender);
+ handler.addEventBatchListener(new NewTabEventBatchReceiver());
+ LogManager.getRootLogger().addAppender(handler);
+ setShutdownAction(new AbstractAction() {
+ public void actionPerformed(ActionEvent e) {
+ }});
+ activateViewer();
+
+ getApplicationPreferenceModel().apply(model);
}
/**
@@ -327,7 +337,7 @@
*/
private void initGUI() {
setupHelpSystem();
-
+ statusBar = new ChainsawStatusBar();
setupReceiverPanel();
setToolBarAndMenus(new ChainsawToolBarAndMenus(this));
@@ -1242,7 +1252,7 @@
}
}
- JWindow progressWindow = new JWindow();
+ final JWindow progressWindow = new JWindow();
final ProgressPanel panel = new ProgressPanel(1, 3, "Shutting down");
progressWindow.getContentPane().add(panel);
progressWindow.pack();
@@ -1277,6 +1287,7 @@
fireShutdownEvent();
performShutdownAction();
+ progressWindow.setVisible(false);
}
};
1.8 +34 -137 logging-log4j/src/java/org/apache/log4j/chainsaw/ChainsawAppender.java
Index: ChainsawAppender.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/chainsaw/ChainsawAppender.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ChainsawAppender.java 25 Jun 2003 04:05:22 -0000 1.7
+++ ChainsawAppender.java 3 Jan 2004 08:04:12 -0000 1.8
@@ -48,14 +48,15 @@
*/
package org.apache.log4j.chainsaw;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.util.ArrayList;
-import javax.swing.event.TableModelListener;
-import javax.swing.table.TableModel;
import org.apache.log4j.Appender;
import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.helpers.Constants;
import org.apache.log4j.helpers.OptionConverter;
+import org.apache.log4j.spi.LoggingEvent;
/**
@@ -66,24 +67,11 @@
* @version 1.0
*/
public class ChainsawAppender
- extends AppenderSkeleton
- implements EventDetailSink, TableModel {
+ extends AppenderSkeleton{
private final ArrayList appenders=new ArrayList();
/**
- * Shared model used by the shared Appender
- */
- private static MyTableModel sSharedModel;
-
- /**
- * The model that is used by this Appender, we ensure
- * here that we only use a single Model as the current
- * release is effetively an in-JVM singleton
- */
- private final MyTableModel wrappedTableModel = getDefaultModel();
-
- /**
* The in-JVM singleton instance of the ChainsawAppender.
*
* If somehow Log4j initialises more than one, then the first one to
@@ -95,6 +83,8 @@
* The classname of the viewer to create to view the events.
*/
private String viewerClassname;
+ private String hostname = "localhost";
+ private String application = "app";
/**
* Constructor, initialises the singleton instance of the appender
@@ -108,21 +98,6 @@
}
/**
- * Returns the singleton MyTableModel instance that has been configured.
- *
- * This will be eventually replaced to allow each ChainsawAppender
- * to have it's own model, but for now it's important that all log events
- * received inside Chainsaw go to a single model.
- * @return MyTableModel
- */
- private static synchronized MyTableModel getDefaultModel() {
- if (sSharedModel == null) {
- sSharedModel = new MyTableModel();
- }
- return sSharedModel;
- }
-
- /**
* Return the singleton instance of the ChainsawAppender, it should only
* be initialised once.
* @return the One and only instance of the ChainsawAppender that is
@@ -133,18 +108,6 @@
}
/**
- * Returns the internally wrapped Model
- *
- * NOTE: it is strongly recommended at this time not to rely on this method
- * until further refactoring is completed.
- * @return MyTableModel the MyTableModel that can be used by external
- * components
- */
- MyTableModel getWrappedModel() {
- return wrappedTableModel;
- }
-
- /**
* This appender does not require layout and so return false
* @return false and only false
*/
@@ -157,28 +120,22 @@
}
/**
- * Implements the EventDetailSink interface by forwarding the EventDetails
- * object onto an internal Model
- * @param aDetails the EventDetails to add to the model
- */
- public void addEvent(EventDetails aDetails) {
- synchronized (wrappedTableModel) {
- wrappedTableModel.addEvent(aDetails);
- }
- }
-
- /**
* Appends the event into the internal wrapped TableModel
* @param aEvent the LoggingEvent to append
*/
protected void append(LoggingEvent aEvent) {
- synchronized (wrappedTableModel) {
- wrappedTableModel.addEvent(new EventDetails(aEvent));
- }
- for (int i=0;i<appenders.size();i++) {
- Appender appender=(Appender)appenders.get(i);
- appender.doAppend(aEvent);
- }
+ if (hostname != null) {
+ aEvent.setProperty(Constants.HOSTNAME_KEY, hostname);
+ }
+
+ if (application != null) {
+ aEvent.setProperty(Constants.APPLICATION_KEY, application);
+ }
+
+ for (int i=0;i<appenders.size();i++) {
+ Appender appender=(Appender)appenders.get(i);
+ appender.doAppend(aEvent);
+ }
}
/**
@@ -197,6 +154,14 @@
if (viewer != null) {
viewer.activateViewer(this);
}
+ try {
+ hostname = InetAddress.getLocalHost().getHostName();
+ } catch (UnknownHostException uhe) {
+ try {
+ hostname = InetAddress.getLocalHost().getHostAddress();
+ } catch (UnknownHostException uhe2) {
+ }
+ }
}
/**
@@ -225,88 +190,20 @@
return viewerClassname;
}
- // ==========================================================================
- // All methods here are from TableModel, and simply forward on to the
- // internal wrappedTableModel instance
- // ==========================================================================
-
- /**
- * Implementation of TableModel interface
- * @return int rowCount
- */
- public int getRowCount() {
- return wrappedTableModel.getRowCount();
- }
-
- /**
- * Implementation of TableModel interface
- * @return int column Count
- */
- public int getColumnCount() {
- return wrappedTableModel.getColumnCount();
- }
-
- /**
- * Implementation of TableModel interface
- * @param aColumnIndex the Column index to query the name for
- * @return String column name
- */
- public String getColumnName(int aColumnIndex) {
- return wrappedTableModel.getColumnName(aColumnIndex);
- }
-
/**
- * Implementation of TableModel interface
- * @param columnIndex column Index to query the Class of
- * @return Class class of Column
+ * The <b>Application</b> option takes a string value which should be the
+ * name of the application getting logged
*/
- public Class getColumnClass(int columnIndex) {
- return wrappedTableModel.getColumnClass(columnIndex);
+ public void setApplication(String lapp) {
+ this.application = lapp;
}
/**
- * Implementation of TableModel interface
- * @param rowIndex row Index to query
- * @param columnIndex column Index to query
- * @return boolean is Cell Editable?
+ * Returns value of the <b>Application</b> option.
*/
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return wrappedTableModel.isCellEditable(rowIndex, columnIndex);
+ public String getApplication() {
+ return application;
}
- /**
- * Implementation of TableModel interface
- * @param rowIndex the row index to retrieve value from
- * @param columnIndex to the column index to retrieve value from
- * @return Object value at a particular row/column point
- */
- public Object getValueAt(int rowIndex, int columnIndex) {
- return wrappedTableModel.getValueAt(rowIndex, columnIndex);
- }
-
- /**
- * Implementation of TableModel interface
- * @param aValue the value to set
- * @param rowIndex the row
- * @param columnIndex the column
- */
- public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
- wrappedTableModel.setValueAt(aValue, rowIndex, columnIndex);
- }
- /**
- * Implementation of TableModel interface
- * @param l a TableModelListener to add
- */
- public void addTableModelListener(TableModelListener l) {
- wrappedTableModel.addTableModelListener(l);
- }
-
- /**
- * Implementation of TableModel interface
- * @param l listener to remove from the currently registered listeners
- */
- public void removeTableModelListener(TableModelListener l) {
- wrappedTableModel.removeTableModelListener(l);
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org