Java slf4j Logger logThreadGroup(final Logger log, ThreadGroup group, int level)

Here you can find the source of logThreadGroup(final Logger log, ThreadGroup group, int level)

Description

This method recursively visits (LOG.info()) all thread groups under `group'.

License

Open Source License

Parameter

Parameter Description
log the Logger to be used for logging

Declaration

public static void logThreadGroup(final Logger log, ThreadGroup group, int level) 

Method Source Code

//package com.java2s;
/**//from  w  ww .j ava  2s. co m
 * OnionCoffee - Anonymous Communication through TOR Network
 * Copyright (C) 2005-2007 RWTH Aachen University, Informatik IV
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 */

import org.slf4j.Logger;

public class Main {
    /**
     * This method recursively visits (LOG.info()) all thread groups under
     * `group'.
     * 
     * @param log the {@link Logger}to be used for logging
     */
    public static void logThreadGroup(final Logger log, ThreadGroup group, int level) {
        // Get threads in `group'
        int numThreads = group.activeCount();
        final Thread[] threads = new Thread[numThreads * 2];
        numThreads = group.enumerate(threads, false);

        // Enumerate each thread in `group'
        for (int i = 0; i < numThreads; i++) {
            // Get thread/
            final Thread thread = threads[i];
            log.info(thread.toString());
        }

        // Get thread subgroups of `group'
        int numGroups = group.activeGroupCount();
        final ThreadGroup[] groups = new ThreadGroup[numGroups * 2];
        numGroups = group.enumerate(groups, false);

        // Recursively visit each subgroup
        for (int i = 0; i < numGroups; i++) {
            logThreadGroup(log, groups[i], level + 1);
        }
    }
}

Related

  1. logInfo(Logger log, Throwable t)
  2. logInfo(Logger logger, String s)
  3. logJavaProperties(Logger log)
  4. logLine(final Logger logger, final Level level, final String msg, final boolean withStackTrace, final String logMessagePrefix)
  5. logResult(long time, String traceId, String apiName, String params, String jsonObject)
  6. logThrowable(Throwable throwable)
  7. logWarningWithDebugDetails(Logger logger, Throwable t, String message, Object... values)
  8. notNull(String message, Object obj)
  9. parsePortNumber(String port, int defaultPort)