Package org.apache.log4j.chainsaw
Class LogPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.apache.log4j.chainsaw.DockablePanel
-
- org.apache.log4j.chainsaw.LogPanel
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,EventBatchListener
,Profileable
,SettingsListener
public class LogPanel extends DockablePanel implements EventBatchListener, Profileable
A LogPanel provides a view to a collection of LoggingEvents.
As events are received, the keywords in the 'tab identifier' application preference are replaced with the values from the received event. The main application uses this expression to route received LoggingEvents to individual LogPanels which match each event's resolved expression.
The LogPanel's capabilities can be broken up into four areas:
- toolbar - provides 'find' and 'refine focus' features
- logger tree - displays a tree of the logger hierarchy, which can be used to filter the display
- table - displays the events which pass the filtering rules
- detail panel - displays information about the currently selected event
- display selected LoggingEvent row number and total LoggingEvent count
- pause or unpause reception of LoggingEvents
- configure, load and save column settings (displayed columns, order, width)
- configure, load and save color rules filter displayed LoggingEvents based on the logger tree settings
- filter displayed LoggingEvents based on a 'refine focus' expression (evaluates only those LoggingEvents which pass the logger tree filter
- colorize LoggingEvents based on expressions
- hide, show and configure the detail pane and tooltip
- configure the formatting of the logger, level and timestamp fields
- dock or undock
- table displays first line of exception, but when cell is clicked, a popup opens to display the full stack trace
- find
- scroll to bottom
- sort
- provide a context menu which can be used to build color or display expressions
- hide or show the logger tree
- toggle the container storing the LoggingEvents to use either a CyclicBuffer (defaults to max size of 5000, but configurable through CHAINSAW_CAPACITY system property) or ArrayList (no max size)
- use the mouse context menu to 'best-fit' columns, define display expression filters based on mouse location and access other capabilities
- Author:
- Scott Deboy (sdeboy at apache.org), Paul Smith (psmith at apache.org), Stephen Pain, Isuru Suriarachchi
- See Also:
ColorPanel
,ExpressionRule
,LoggingEventFieldResolver
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
Constructor Summary
Constructors Constructor Description LogPanel(ChainsawStatusBar statusBar, String identifier, int cyclicBufferSize, Map<String,RuleColorizer> allColorizers, ApplicationPreferenceModel applicationPreferenceModel)
Creates a new LogPanel object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
centerAndSetVisible(Window window)
void
clearAllMarkers()
void
findNext()
Finds the next row matching the current find rule, and ensures it is made visiblevoid
findNextColorizedEvent()
void
findNextMarker()
void
findPrevious()
Finds the previous row matching the current find rule, and ensures it is made visiblevoid
findPreviousColorizedEvent()
void
findPreviousMarker()
String
getFindText()
String
getInterestedIdentifier()
AccessorString
getNamespace()
AccessorString
getRefineFocusText()
boolean
isScrollToBottom()
Accessorvoid
layoutComponents()
void
loadSettings(LoadSettingsEvent event)
Load settings from the panel preference modelvoid
receiveEventBatch(String ident, List<org.apache.log4j.spi.LoggingEvent> events)
Process events associated with the identifier.void
saveSettings(SaveSettingsEvent event)
Save preferences to the panel preference modelvoid
scrollToTop()
void
setFindText(String findText)
void
setRefineFocusText(String refineFocusText)
void
toggleMarker()
void
toggleScrollToBottom()
Mutatorvoid
updateFindRule(String ruleText)
protected void
updateStatusBar()
Update the status bar with current selected row and row count-
Methods inherited from class org.apache.log4j.chainsaw.DockablePanel
getPreferredSize, isDocked, setDocked
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
LogPanel
public LogPanel(ChainsawStatusBar statusBar, String identifier, int cyclicBufferSize, Map<String,RuleColorizer> allColorizers, ApplicationPreferenceModel applicationPreferenceModel)
Creates a new LogPanel object. If a LogPanel with this identifier has been loaded previously, reload settings saved on last exit.- Parameters:
statusBar
- shared status bar, provided by main applicationidentifier
- used to load and save settings
-
-
Method Detail
-
isScrollToBottom
public boolean isScrollToBottom()
Accessor- Returns:
- scrollToBottom
-
setRefineFocusText
public void setRefineFocusText(String refineFocusText)
-
getRefineFocusText
public String getRefineFocusText()
-
toggleScrollToBottom
public void toggleScrollToBottom()
Mutator
-
scrollToTop
public void scrollToTop()
-
getNamespace
public String getNamespace()
Accessor- Specified by:
getNamespace
in interfaceProfileable
- Returns:
- namespace
- See Also:
Profileable
-
getInterestedIdentifier
public String getInterestedIdentifier()
Accessor- Specified by:
getInterestedIdentifier
in interfaceEventBatchListener
- Returns:
- identifier
- See Also:
EventBatchListener
-
receiveEventBatch
public void receiveEventBatch(String ident, List<org.apache.log4j.spi.LoggingEvent> events)
Process events associated with the identifier. Currently assumes it only receives events which share this LogPanel's identifier- Specified by:
receiveEventBatch
in interfaceEventBatchListener
- Parameters:
ident
- identifier shared by eventsevents
- list of LoggingEvent objects
-
loadSettings
public void loadSettings(LoadSettingsEvent event)
Load settings from the panel preference model- Specified by:
loadSettings
in interfaceSettingsListener
- Parameters:
event
-- See Also:
LogPanelPreferenceModel
-
saveSettings
public void saveSettings(SaveSettingsEvent event)
Save preferences to the panel preference model- Specified by:
saveSettings
in interfaceSettingsListener
- Parameters:
event
-- See Also:
LogPanelPreferenceModel
-
centerAndSetVisible
public static void centerAndSetVisible(Window window)
-
updateFindRule
public void updateFindRule(String ruleText)
-
updateStatusBar
protected void updateStatusBar()
Update the status bar with current selected row and row count
-
findNextColorizedEvent
public void findNextColorizedEvent()
-
findPreviousColorizedEvent
public void findPreviousColorizedEvent()
-
findNext
public void findNext()
Finds the next row matching the current find rule, and ensures it is made visible
-
findPrevious
public void findPrevious()
Finds the previous row matching the current find rule, and ensures it is made visible
-
findNextMarker
public void findNextMarker()
-
findPreviousMarker
public void findPreviousMarker()
-
clearAllMarkers
public void clearAllMarkers()
-
toggleMarker
public void toggleMarker()
-
layoutComponents
public void layoutComponents()
-
setFindText
public void setFindText(String findText)
-
getFindText
public String getFindText()
-
-