Class Server
- java.lang.Object
-
- org.apache.logging.log4j.core.jmx.Server
-
public final class Server extends java.lang.ObjectCreates MBeans to instrument various classes in the log4j class hierarchy.All instrumentation for Log4j 2 classes can be disabled by setting system property
-Dlog4j2.disable.jmx=true.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringCONTEXT_NAME_ALLstatic java.lang.StringDOMAINThe domain part, or prefix ("org.apache.logging.log4j2") of theObjectNameof all MBeans that instrument Log4J2 components.(package private) static java.util.concurrent.Executorexecutorprivate static StatusLoggerLOGGERprivate static java.lang.StringPROPERTY_ASYNC_NOTIFprivate static java.lang.StringPROPERTY_DISABLE_JMXprivate static java.lang.StringTHREAD_NAME_PREFIX
-
Constructor Summary
Constructors Modifier Constructor Description privateServer()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static java.util.concurrent.ExecutorServicecreateExecutor()Returns either anullExecutor (causing JMX notifications to be sent from the caller thread) or a daemon background thread Executor, depending on the value of system property "log4j2.jmx.notify.async".static java.lang.Stringescape(java.lang.String name)Either returns the specified name as is, or returns a quoted value containing the specified name with the special characters (comma, equals, colon, quote, asterisk, or question mark) preceded with a backslash.private static ContextSelectorgetContextSelector()Returns theContextSelectorof the currentLog4jContextFactory.private static booleanisJmxDisabled()private static voidregister(javax.management.MBeanServer mbs, java.lang.Object mbean, javax.management.ObjectName objectName)private static voidregisterAppenders(LoggerContext ctx, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor)private static voidregisterContextSelector(java.lang.String contextName, ContextSelector selector, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor)private static voidregisterLoggerConfigs(LoggerContext ctx, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor)private static voidregisterStatusLogger(java.lang.String contextName, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor)static voidreregisterMBeansAfterReconfigure()static voidreregisterMBeansAfterReconfigure(javax.management.MBeanServer mbs)private static voidunregisterAllMatching(java.lang.String search, javax.management.MBeanServer mbs)private static voidunregisterAppenders(java.lang.String contextName, javax.management.MBeanServer mbs)private static voidunregisterAsyncAppenders(java.lang.String contextName, javax.management.MBeanServer mbs)private static voidunregisterAsyncLoggerConfigRingBufferAdmins(java.lang.String contextName, javax.management.MBeanServer mbs)private static voidunregisterAsyncLoggerRingBufferAdmins(java.lang.String contextName, javax.management.MBeanServer mbs)private static voidunregisterContexts(javax.management.MBeanServer mbs)private static voidunregisterContextSelector(java.lang.String contextName, javax.management.MBeanServer mbs)private static voidunregisterLoggerConfigs(java.lang.String contextName, javax.management.MBeanServer mbs)static voidunregisterLoggerContext(java.lang.String loggerContextName)Unregisters all MBeans associated with the specified logger context (including MBeans forLoggerConfigs andAppenders from the platform MBean server.static voidunregisterLoggerContext(java.lang.String contextName, javax.management.MBeanServer mbs)Unregisters all MBeans associated with the specified logger context (including MBeans forLoggerConfigs andAppenders from the platform MBean server.static voidunregisterMBeans()Unregister all log4j MBeans from the platform MBean server.static voidunregisterMBeans(javax.management.MBeanServer mbs)Unregister all log4j MBeans from the specified MBean server.private static voidunregisterStatusLogger(java.lang.String contextName, javax.management.MBeanServer mbs)
-
-
-
Field Detail
-
CONTEXT_NAME_ALL
private static final java.lang.String CONTEXT_NAME_ALL
- See Also:
- Constant Field Values
-
DOMAIN
public static final java.lang.String DOMAIN
The domain part, or prefix ("org.apache.logging.log4j2") of theObjectNameof all MBeans that instrument Log4J2 components.- See Also:
- Constant Field Values
-
PROPERTY_DISABLE_JMX
private static final java.lang.String PROPERTY_DISABLE_JMX
- See Also:
- Constant Field Values
-
PROPERTY_ASYNC_NOTIF
private static final java.lang.String PROPERTY_ASYNC_NOTIF
- See Also:
- Constant Field Values
-
THREAD_NAME_PREFIX
private static final java.lang.String THREAD_NAME_PREFIX
- See Also:
- Constant Field Values
-
LOGGER
private static final StatusLogger LOGGER
-
executor
static final java.util.concurrent.Executor executor
-
-
Method Detail
-
createExecutor
private static java.util.concurrent.ExecutorService createExecutor()
Returns either anullExecutor (causing JMX notifications to be sent from the caller thread) or a daemon background thread Executor, depending on the value of system property "log4j2.jmx.notify.async". If this property is not set, use anullExecutor for web apps to avoid memory leaks and other issues when the web app is restarted.- See Also:
- LOG4J2-938
-
escape
public static java.lang.String escape(java.lang.String name)
Either returns the specified name as is, or returns a quoted value containing the specified name with the special characters (comma, equals, colon, quote, asterisk, or question mark) preceded with a backslash.- Parameters:
name- the name to escape so it can be used as a value in anObjectName.- Returns:
- the escaped name
-
isJmxDisabled
private static boolean isJmxDisabled()
-
reregisterMBeansAfterReconfigure
public static void reregisterMBeansAfterReconfigure()
-
reregisterMBeansAfterReconfigure
public static void reregisterMBeansAfterReconfigure(javax.management.MBeanServer mbs)
-
unregisterMBeans
public static void unregisterMBeans()
Unregister all log4j MBeans from the platform MBean server.
-
unregisterMBeans
public static void unregisterMBeans(javax.management.MBeanServer mbs)
Unregister all log4j MBeans from the specified MBean server.- Parameters:
mbs- the MBean server to unregister from.
-
getContextSelector
private static ContextSelector getContextSelector()
Returns theContextSelectorof the currentLog4jContextFactory.- Returns:
- the
ContextSelectorof the currentLog4jContextFactory
-
unregisterLoggerContext
public static void unregisterLoggerContext(java.lang.String loggerContextName)
Unregisters all MBeans associated with the specified logger context (including MBeans forLoggerConfigs andAppenders from the platform MBean server.- Parameters:
loggerContextName- name of the logger context to unregister
-
unregisterLoggerContext
public static void unregisterLoggerContext(java.lang.String contextName, javax.management.MBeanServer mbs)Unregisters all MBeans associated with the specified logger context (including MBeans forLoggerConfigs andAppenders from the platform MBean server.- Parameters:
contextName- name of the logger context to unregistermbs- the MBean Server to unregister the instrumented objects from
-
registerStatusLogger
private static void registerStatusLogger(java.lang.String contextName, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException- Throws:
javax.management.InstanceAlreadyExistsExceptionjavax.management.MBeanRegistrationExceptionjavax.management.NotCompliantMBeanException
-
registerContextSelector
private static void registerContextSelector(java.lang.String contextName, ContextSelector selector, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException- Throws:
javax.management.InstanceAlreadyExistsExceptionjavax.management.MBeanRegistrationExceptionjavax.management.NotCompliantMBeanException
-
unregisterStatusLogger
private static void unregisterStatusLogger(java.lang.String contextName, javax.management.MBeanServer mbs)
-
unregisterContextSelector
private static void unregisterContextSelector(java.lang.String contextName, javax.management.MBeanServer mbs)
-
unregisterLoggerConfigs
private static void unregisterLoggerConfigs(java.lang.String contextName, javax.management.MBeanServer mbs)
-
unregisterContexts
private static void unregisterContexts(javax.management.MBeanServer mbs)
-
unregisterAppenders
private static void unregisterAppenders(java.lang.String contextName, javax.management.MBeanServer mbs)
-
unregisterAsyncAppenders
private static void unregisterAsyncAppenders(java.lang.String contextName, javax.management.MBeanServer mbs)
-
unregisterAsyncLoggerRingBufferAdmins
private static void unregisterAsyncLoggerRingBufferAdmins(java.lang.String contextName, javax.management.MBeanServer mbs)
-
unregisterAsyncLoggerConfigRingBufferAdmins
private static void unregisterAsyncLoggerConfigRingBufferAdmins(java.lang.String contextName, javax.management.MBeanServer mbs)
-
unregisterAllMatching
private static void unregisterAllMatching(java.lang.String search, javax.management.MBeanServer mbs)
-
registerLoggerConfigs
private static void registerLoggerConfigs(LoggerContext ctx, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
- Throws:
javax.management.InstanceAlreadyExistsExceptionjavax.management.MBeanRegistrationExceptionjavax.management.NotCompliantMBeanException
-
registerAppenders
private static void registerAppenders(LoggerContext ctx, javax.management.MBeanServer mbs, java.util.concurrent.Executor executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
- Throws:
javax.management.InstanceAlreadyExistsExceptionjavax.management.MBeanRegistrationExceptionjavax.management.NotCompliantMBeanException
-
register
private static void register(javax.management.MBeanServer mbs, java.lang.Object mbean, javax.management.ObjectName objectName) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException- Throws:
javax.management.InstanceAlreadyExistsExceptionjavax.management.MBeanRegistrationExceptionjavax.management.NotCompliantMBeanException
-
-