Posts

Showing posts from September, 2012

JMX log all or specific MBeans and all or specific values

private static Log Log = LogFactory.getLog(LogMBean.class);


  public void LogMBeans(String nameContains, String valueContains) throws IntrospectionException,
      InstanceNotFoundException, ReflectionException
  {
    final List servers = new LinkedList();
    servers.add(ManagementFactory.getPlatformMBeanServer());
    servers.addAll(MBeanServerFactory.findMBeanServer(null));
    for (final MBeanServer server: servers)
    {
      Log.error("Server: " + server.getClass().getName());

      final Set mbeans = new HashSet();
      mbeans.addAll(server.queryNames(null, null));
      for (final ObjectName mbean: mbeans)
      {
        if (nameContains != null && mbean.toString().contains(nameContains) == false)
        {
          continue;
        }

        String mbeanName = mbean.toString();
        if (valueContains == null || valueContains.isEmpty())
        {
          Log.error("mbean: " + mbeanName);
        }

        final MBeanAttributeInfo[] att…