Package org.apache.tomcat.util

# Class Diagnostics

java.lang.Object
org.apache.tomcat.util.Diagnostics

public class Diagnostics extends Object

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Diagnostics()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `findDeadlock()`
  Check if any threads are deadlocked.
  `static void`
  `gc()`
  Initiate garbage collection via MX Bean
  `static String`
  `getThreadDump()`
  Retrieves a formatted JVM thread dump.
  `static String`
  `getThreadDump(Enumeration<Locale> requestedLocales)`
  Retrieves a formatted JVM thread dump.
  `static String`
  `getThreadDump(StringManager requestedSm)`
  Retrieve a JVM thread dump formatted using the given StringManager.
  `static String`
  `getVMInfo()`
  Retrieves a formatted JVM information text.
  `static String`
  `getVMInfo(Enumeration<Locale> requestedLocales)`
  Retrieves a formatted JVM information text.
  `static String`
  `getVMInfo(StringManager requestedSm)`
  Retrieve a JVM information text formatted using the given StringManager.
  `static boolean`
  `isThreadContentionMonitoringEnabled()`
  Check whether thread contention monitoring is enabled.
  `static boolean`
  `isThreadCpuTimeEnabled()`
  Check whether thread cpu time measurement is enabled.
  `static void`
  `resetPeakThreadCount()`
  Reset peak thread count in ThreadMXBean
  `static void`
  `resetPeakUsage(String name)`
  Reset peak memory usage data in MemoryPoolMXBean
  `static boolean`
  `setCollectionUsageThreshold(String name, long threshold)`
  Set collection usage threshold in MemoryPoolMXBean
  `static void`
  `setLoggerLevel(String loggerName, String levelName)`
  Set logger level
  `static void`
  `setThreadContentionMonitoringEnabled(boolean enable)`
  Enable or disable thread contention monitoring via the ThreadMxMXBean.
  `static void`
  `setThreadCpuTimeEnabled(boolean enable)`
  Enable or disable thread cpu time measurement via the ThreadMxMXBean.
  `static boolean`
  `setUsageThreshold(String name, long threshold)`
  Set usage threshold in MemoryPoolMXBean
  `static void`
  `setVerboseClassLoading(boolean verbose)`
  Set verbose class loading
  `static void`
  `setVerboseGarbageCollection(boolean verbose)`
  Set verbose garbage collection logging

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

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

- ## Constructor Details

  - ### Diagnostics

    public Diagnostics()

- ## Method Details

  - ### isThreadContentionMonitoringEnabled

    public static boolean isThreadContentionMonitoringEnabled()
    Check whether thread contention monitoring is enabled.
    Returns:
      true if thread contention monitoring is enabled

  - ### setThreadContentionMonitoringEnabled

    public static void setThreadContentionMonitoringEnabled(boolean enable)
    Enable or disable thread contention monitoring via the ThreadMxMXBean.
    Parameters:
      `enable` - whether to enable thread contention monitoring

  - ### isThreadCpuTimeEnabled

    public static boolean isThreadCpuTimeEnabled()
    Check whether thread cpu time measurement is enabled.
    Returns:
      true if thread cpu time measurement is enabled

  - ### setThreadCpuTimeEnabled

    public static void setThreadCpuTimeEnabled(boolean enable)
    Enable or disable thread cpu time measurement via the ThreadMxMXBean.
    Parameters:
      `enable` - whether to enable thread cpu time measurement

  - ### resetPeakThreadCount

    public static void resetPeakThreadCount()
    Reset peak thread count in ThreadMXBean

  - ### setVerboseClassLoading

    public static void setVerboseClassLoading(boolean verbose)
    Set verbose class loading
    Parameters:
      `verbose` - whether to enable verbose class loading

  - ### setLoggerLevel

    public static void setLoggerLevel(String loggerName, String levelName)
    Set logger level
    Parameters:
      `loggerName` - the name of the logger
      `levelName` - the level to set

  - ### setVerboseGarbageCollection

    public static void setVerboseGarbageCollection(boolean verbose)
    Set verbose garbage collection logging
    Parameters:
      `verbose` - whether to enable verbose gc logging

  - ### gc

    public static void gc()
    Initiate garbage collection via MX Bean

  - ### resetPeakUsage

    public static void resetPeakUsage(String name)
    Reset peak memory usage data in MemoryPoolMXBean
    Parameters:
      `name` - name of the MemoryPoolMXBean or "all"

  - ### setUsageThreshold

    public static boolean setUsageThreshold(String name, long threshold)
    Set usage threshold in MemoryPoolMXBean
    Parameters:
      `name` - name of the MemoryPoolMXBean
      `threshold` - the threshold to set
    Returns:
      true if setting the threshold succeeded

  - ### setCollectionUsageThreshold

    public static boolean setCollectionUsageThreshold(String name, long threshold)
    Set collection usage threshold in MemoryPoolMXBean
    Parameters:
      `name` - name of the MemoryPoolMXBean
      `threshold` - the collection threshold to set
    Returns:
      true if setting the threshold succeeded

  - ### findDeadlock

    public static String findDeadlock()
    Check if any threads are deadlocked. If any, print the thread dump for those threads.
    Returns:
      a deadlock message and the formatted thread dump of the deadlocked threads

  - ### getThreadDump

    public static String getThreadDump()
    Retrieves a formatted JVM thread dump. The default StringManager will be used.
    Returns:
      the formatted JVM thread dump

  - ### getThreadDump

    public static String getThreadDump(Enumeration<Locale> requestedLocales)
    Retrieves a formatted JVM thread dump. The given list of locales will be used to retrieve a StringManager.
    Parameters:
      `requestedLocales` - list of locales to use
    Returns:
      the formatted JVM thread dump

  - ### getThreadDump

    public static String getThreadDump(StringManager requestedSm)
    Retrieve a JVM thread dump formatted using the given StringManager.
    Parameters:
      `requestedSm` - the StringManager to use
    Returns:
      the formatted JVM thread dump

  - ### getVMInfo

    public static String getVMInfo()
    Retrieves a formatted JVM information text. The default StringManager will be used.
    Returns:
      the formatted JVM information text

  - ### getVMInfo

    public static String getVMInfo(Enumeration<Locale> requestedLocales)
    Retrieves a formatted JVM information text. The given list of locales will be used to retrieve a StringManager.
    Parameters:
      `requestedLocales` - list of locales to use
    Returns:
      the formatted JVM information text

  - ### getVMInfo

    public static String getVMInfo(StringManager requestedSm)
    Retrieve a JVM information text formatted using the given StringManager.
    Parameters:
      `requestedSm` - the StringManager to use
    Returns:
      the formatted JVM information text