You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by sd...@apache.org on 2010/03/02 09:01:45 UTC
svn commit: r917906 - in
/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw:
ChainsawColumns.java ChainsawConstants.java
ChainsawCyclicBufferTableModel.java LogPanel.java
TableColorizingRenderer.java
Author: sdeboy
Date: Tue Mar 2 08:01:44 2010
New Revision: 917906
URL: http://svn.apache.org/viewvc?rev=917906&view=rev
Log:
MDC properties are case sensitive, so make log4j.marker lowercase
Fix problems loading columns if version is old
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawColumns.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawConstants.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawColumns.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawColumns.java?rev=917906&r1=917905&r2=917906&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawColumns.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawColumns.java Tue Mar 2 08:01:44 2010
@@ -37,7 +37,7 @@
static {
columnNames.add(ChainsawConstants.LOGGER_COL_NAME);
- columnNames.add(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ columnNames.add(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE.toUpperCase()); //add uppercase col name
columnNames.add(ChainsawConstants.TIMESTAMP_COL_NAME);
columnNames.add(ChainsawConstants.LEVEL_COL_NAME);
columnNames.add(ChainsawConstants.THREAD_COL_NAME);
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawConstants.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawConstants.java?rev=917906&r1=917905&r2=917906&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawConstants.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawConstants.java Tue Mar 2 08:01:44 2010
@@ -57,7 +57,7 @@
//COLUMN NAMES
static final String LOGGER_COL_NAME = "LOGGER";
- static final String LOG4J_MARKER_COL_NAME = "LOG4J.MARKER";
+ static final String LOG4J_MARKER_COL_NAME_LOWERCASE = "log4j.marker"; //properties are case-sensitive-using lowercase for easier entry
static final String TIMESTAMP_COL_NAME = "TIMESTAMP";
static final String LEVEL_COL_NAME = "LEVEL";
static final String THREAD_COL_NAME = "THREAD";
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java?rev=917906&r1=917905&r2=917906&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java Tue Mar 2 08:01:44 2010
@@ -410,7 +410,7 @@
return event.getLevel();
case ChainsawColumns.INDEX_LOG4J_MARKER_COL_NAME:
- return event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ return event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
case ChainsawColumns.INDEX_LOGGER_COL_NAME:
return event.getLoggerName();
@@ -630,7 +630,7 @@
return true;
}
- if (getColumnName(columnIndex).equals(ChainsawConstants.LOG4J_MARKER_COL_NAME)) {
+ if (getColumnName(columnIndex).toLowerCase().equals(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) {
return true;
}
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java?rev=917906&r1=917905&r2=917906&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java Tue Mar 2 08:01:44 2010
@@ -241,7 +241,7 @@
static final String TABLE_COLUMN_ORDER = "table.columns.order";
static final String TABLE_COLUMN_WIDTHS = "table.columns.widths";
static final String COLORS_EXTENSION = ".colors";
- private static final int LOG_PANEL_SERIALIZATION_VERSION_NUMBER = 1;
+ private static final int LOG_PANEL_SERIALIZATION_VERSION_NUMBER = 2; //increment when format changes
private int previousLastIndex = -1;
private final DateFormat timestampExpressionFormat = new SimpleDateFormat(Constants.TIMESTAMP_RULE_FORMAT);
private final Logger logger = LogManager.getLogger(LogPanel.class);
@@ -1038,7 +1038,7 @@
}
});
- findMarkerRule = ExpressionRule.getRule("prop." + ChainsawConstants.LOG4J_MARKER_COL_NAME + " exists");
+ findMarkerRule = ExpressionRule.getRule("prop." + ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE + " exists");
tableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
@@ -1591,45 +1591,66 @@
File xmlFile = new File(SettingsManager.getInstance()
.getSettingsDirectory(), URLEncoder.encode(identifier) + ".xml");
- if (xmlFile.exists()) {
- XStream stream = buildXStreamForLogPanelPreference();
- ObjectInputStream in = null;
+ if (xmlFile.exists()) {
+ XStream stream = buildXStreamForLogPanelPreference();
+ ObjectInputStream in = null;
+ try {
+ FileReader r = new FileReader(xmlFile);
+ in = stream.createObjectInputStream(r);
+ LogPanelPreferenceModel storedPrefs = (LogPanelPreferenceModel)in.readObject();
+ int lowerPanelDividerLocation = in.readInt();
+ int treeDividerLocation = in.readInt();
+ String conversionPattern = in.readObject().toString();
+ Point p = (Point)in.readObject();
+ Dimension d = (Dimension)in.readObject();
+ //this version number is checked to identify whether there is a Vector comming next
+ int versionNumber = 0;
try {
- FileReader r = new FileReader(xmlFile);
- in = stream.createObjectInputStream(r);
-
- LogPanelPreferenceModel storedPrefs = (LogPanelPreferenceModel)in.readObject();
- String columnOrder = event.getSetting(TABLE_COLUMN_ORDER);
- preferenceModel.apply(storedPrefs);
-
- //update prefModel columns to include defaults
- int index = 0;
- StringTokenizer tok = new StringTokenizer(columnOrder, ",");
- while (tok.hasMoreElements()) {
- String element = tok.nextElement().toString().trim().toUpperCase();
- TableColumn column = new TableColumn(index++);
- column.setHeaderValue(element);
- preferenceModel.addColumn(column);
- }
+ versionNumber = in.readInt();
+ } catch (EOFException eof){
+ }
- TableColumnModel columnModel = table.getColumnModel();
- //remove previous columns
- while (columnModel.getColumnCount() > 0) {
- columnModel.removeColumn(columnModel.getColumn(0));
- }
- //add visible column order columns
- for (Iterator iter = preferenceModel.getVisibleColumnOrder().iterator();iter.hasNext();) {
- TableColumn col = (TableColumn)iter.next();
- columnModel.addColumn(col);
+ Vector savedVector;
+ //read the vector only if the version number is greater than 0. higher version numbers can be
+ //used in the future to save more data structures
+ if (versionNumber > 0) {
+ savedVector = (Vector) in.readObject();
+ for(int i = 0 ; i < savedVector.size() ; i++){
+ Object item = savedVector.get(i);
+ if(!filterExpressionVector.contains(item)){
+ filterExpressionVector.add(item);
+ }
}
+ if (versionNumber > 1) {
+ //update prefModel columns to include defaults
+ int index = 0;
+ String columnOrder = event.getSetting(TABLE_COLUMN_ORDER);
+ StringTokenizer tok = new StringTokenizer(columnOrder, ",");
+ while (tok.hasMoreElements()) {
+ String element = tok.nextElement().toString().trim().toUpperCase();
+ TableColumn column = new TableColumn(index++);
+ column.setHeaderValue(element);
+ preferenceModel.addColumn(column);
+ }
- try {
- //may be panel configs that don't have these values
- lowerPanel.setDividerLocation(in.readInt());
- nameTreeAndMainPanelSplit.setDividerLocation(in.readInt());
- detailLayout.setConversionPattern(in.readObject().toString());
- Point p = (Point)in.readObject();
- Dimension d = (Dimension)in.readObject();
+ TableColumnModel columnModel = table.getColumnModel();
+ //remove previous columns
+ while (columnModel.getColumnCount() > 0) {
+ columnModel.removeColumn(columnModel.getColumn(0));
+ }
+ //add visible column order columns
+ for (Iterator iter = preferenceModel.getVisibleColumnOrder().iterator();iter.hasNext();) {
+ TableColumn col = (TableColumn)iter.next();
+ columnModel.addColumn(col);
+ }
+ preferenceModel.apply(storedPrefs);
+ } else {
+ loadDefaultColumnSettings(event);
+ }
+ //may be panel configs that don't have these values
+ lowerPanel.setDividerLocation(lowerPanelDividerLocation);
+ nameTreeAndMainPanelSplit.setDividerLocation(treeDividerLocation);
+ detailLayout.setConversionPattern(conversionPattern);
if (p.x != 0 && p.y != 0) {
undockedFrame.setLocation(p.x, p.y);
undockedFrame.setSize(d);
@@ -1637,44 +1658,24 @@
undockedFrame.setLocation(0, 0);
undockedFrame.setSize(new Dimension(1024, 768));
}
-
- int versionNumber = 0;
- Vector savedVector;
-
- //this version number is checked to identify whether there is a Vector comming next
- try {
- versionNumber = in.readInt();
- } catch (EOFException eof){
- }
-
- //read the vector only if the version number is greater than 0. higher version numbers can be
- //used in the future to save more data structures
- if (versionNumber > 0){
- savedVector = (Vector) in.readObject();
- for(int i = 0 ; i < savedVector.size() ; i++){
- Object item = savedVector.get(i);
- if(!filterExpressionVector.contains(item)){
- filterExpressionVector.add(item);
- }
- }
- }
-
- } catch (EOFException eof){
- }
- } catch (Exception e) {
- e.printStackTrace();
- // TODO need to log this..
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException ioe) {}
- }
+ } else {
+ loadDefaultColumnSettings(event);
}
- } else {
+ } catch (Exception e) {
+ e.printStackTrace();
loadDefaultColumnSettings(event);
- }
-
+ // TODO need to log this..
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException ioe) {}
+ }
+ }
+ } else {
+ loadDefaultColumnSettings(event);
+ }
+
logTreePanel.ignore(preferenceModel.getHiddenLoggers());
//first attempt to load encoded file
@@ -2553,18 +2554,18 @@
}
public void clearAllMarkers() {
- tableModel.removePropertyFromEvents(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ tableModel.removePropertyFromEvents(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
}
public void toggleMarker() {
int row = table.getSelectedRow();
if (row != -1) {
LoggingEvent event = tableModel.getRow(row);
- Object marker = event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ Object marker = event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
if (marker == null) {
- event.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME, "set");
+ event.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE, "set");
} else {
- event.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ event.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
}
//if marker -was- null, it no longer is (may need to add the column)
tableModel.fireRowUpdated(row, (marker == null));
@@ -2695,11 +2696,11 @@
int row = table.rowAtPoint(evt.getPoint());
if (row != -1) {
LoggingEvent event = tableModel.getRow(row);
- Object marker = event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ Object marker = event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
if (marker == null) {
- event.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME, "set");
+ event.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE, "set");
} else {
- event.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ event.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
}
//if marker -was- null, it no longer is (may need to add the column)
tableModel.fireRowUpdated(row, (marker == null));
@@ -2772,7 +2773,7 @@
(column.getModelIndex() + 1) == ChainsawColumns.INDEX_THROWABLE_COL_NAME) {
column.setCellEditor(throwableRenderPanel);
}
- if (column.getHeaderValue().toString().equals(ChainsawConstants.LOG4J_MARKER_COL_NAME)) {
+ if (column.getHeaderValue().toString().toLowerCase().equals(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE)) {
column.setCellEditor(markerCellEditor);
}
}
@@ -2923,9 +2924,9 @@
public boolean stopCellEditing()
{
if (textField.getText().trim().equals("")) {
- currentEvent.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME);
+ currentEvent.removeProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE);
} else {
- currentEvent.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME, textField.getText());
+ currentEvent.setProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE, textField.getText());
}
ChangeEvent event = new ChangeEvent(table);
for (Iterator iter = cellEditorListeners.iterator();iter.hasNext();) {
@@ -2955,7 +2956,7 @@
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
{
currentEvent = tableModel.getRow(row);
- textField.setText(currentEvent.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME));
+ textField.setText(currentEvent.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE));
textField.selectAll();
return textField;
}
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java?rev=917906&r1=917905&r2=917906&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java Tue Mar 2 08:01:44 2010
@@ -195,7 +195,7 @@
}
//set the 'marker' icon next to the zeroth column if marker is set
if (col == 0) {
- if (event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME) != null) {
+ if (event.getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE) != null) {
c.setIcon(markerIcon);
} else {
//only null out the column if it's not the level field