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
  Here is a complete list of LogPanel's capabilities:
  - 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 and Description
    `LogPanel(ChainsawStatusBar statusBar, String identifier, int cyclicBufferSize, Map allColorizers, ApplicationPreferenceModel applicationPreferenceModel)` Creates a new LogPanel object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `centerAndSetVisible(Window window)`
    `void` | `clearAllMarkers()`
    `void` | `findNext()` Finds the next row matching the current find rule, and ensures it is made visible
    `void` | `findNextColorizedEvent()`
    `void` | `findNextMarker()`
    `void` | `findPrevious()` Finds the previous row matching the current find rule, and ensures it is made visible
    `void` | `findPreviousColorizedEvent()`
    `void` | `findPreviousMarker()`
    `String` | `getFindText()`
    `String` | `getInterestedIdentifier()` Accessor
    `String` | `getNamespace()` Accessor
    `String` | `getRefineFocusText()`
    `boolean` | `isScrollToBottom()` Accessor
    `void` | `layoutComponents()`
    `void` | `loadSettings(LoadSettingsEvent event)` Load settings from the panel preference model
    `void` | `receiveEventBatch(String ident, List events)` Process events associated with the identifier.
    `void` | `saveSettings(SaveSettingsEvent event)` Save preferences to the panel preference model
    `void` | `scrollToTop()`
    `void` | `setFindText(String findText)`
    `void` | `setRefineFocusText(String refineFocusText)`
    `void` | `toggleMarker()`
    `void` | `toggleScrollToBottom()` Mutator
    `void` | `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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### LogPanel

          public LogPanel(ChainsawStatusBar statusBar,
                          String identifier,
                          int cyclicBufferSize,
                          Map 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 application
        `identifier` - 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 interface `Profileable`
      Returns:
        namespace
      See Also:
        `Profileable`

    - #### getInterestedIdentifier

          public String getInterestedIdentifier()

      Accessor
      Specified by:
        `getInterestedIdentifier` in interface `EventBatchListener`
      Returns:
        identifier
      See Also:
        `EventBatchListener`

    - #### receiveEventBatch

          public void receiveEventBatch(String ident,
                                        List events)

      Process events associated with the identifier. Currently assumes it only receives events which share this LogPanel's identifier
      Specified by:
        `receiveEventBatch` in interface `EventBatchListener`
      Parameters:
        `ident` - identifier shared by events
        `events` - list of LoggingEvent objects

    - #### loadSettings

          public void loadSettings(LoadSettingsEvent event)

      Load settings from the panel preference model
      Specified by:
        `loadSettings` in interface `SettingsListener`
      Parameters:
        `event` -
      See Also:
        `LogPanelPreferenceModel`

    - #### saveSettings

          public void saveSettings(SaveSettingsEvent event)

      Save preferences to the panel preference model
      Specified by:
        `saveSettings` in interface `SettingsListener`
      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()

Copyright © 2002-2018 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache Chainsaw, Chainsaw, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.