/******************************************************************************* * Copyright (c) 2016 École Polytechnique de Montréal * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package org.eclipse.tracecompass.common.core.log; import java.util.logging.Level; import java.util.logging.Logger; /** * Utility class containing methods to support logging in Trace Compass * * @author Geneviève Bastien * @since 2.1 */ public final class TraceCompassLog { private static final String LOGGING_PROPERTY = "org.eclipse.tracecompass.logging"; //$NON-NLS-1$ private static final Logger TC_PARENT_LOGGER = Logger.getLogger("org.eclipse.tracecompass"); //$NON-NLS-1$ static { /* * If Logging is not enabled, to avoid java's default parameters, we set * the main TraceCompass logger to not use its parent's logs and set the * level at OFF */ String loggingProperty = System.getProperty(LOGGING_PROPERTY); if (!"true".equals(loggingProperty)) { //$NON-NLS-1$ TC_PARENT_LOGGER.setUseParentHandlers(false); TC_PARENT_LOGGER.setLevel(Level.OFF); } } private TraceCompassLog() { } /** * Get a logger by name. Calling this method instead of directly * {@link Logger#getLogger(String)} insures that the main Trace Compass * logger has been initialized to default value instead of using java's * default parameters. * * @param name * The name of the logger to get. It is advised to use something * like {@link Class#getCanonicalName()}, as it will use the full * path of the logged class and the logging can be controlled for * its parent as well. * @return The logger */ public static Logger getLogger(String name) { return Logger.getLogger(name); } /** * Get a logger for a class * * @param clazz * The class to get a logger for * @return The logger */ public static Logger getLogger(Class<?> clazz) { return getLogger(clazz.getName()); } }