/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.toolkit.modules.statistics.setup; import de.rcenvironment.toolkit.modules.statistics.api.CounterCategory; import de.rcenvironment.toolkit.modules.statistics.api.StatisticsFilterLevel; import de.rcenvironment.toolkit.modules.statistics.utils.CompactStacktraceBuilder; /** * Configuration settings for the "statistics" module. * * @author Robert Mischke */ public class StatisticsModuleConfiguration { private StatisticsFilterLevel statisticsFilterLevel = StatisticsFilterLevel.RELEASE; // default private CompactStacktraceBuilder configuredCompactStacktraceBuilder; // may be null for default public StatisticsFilterLevel getStatisticsFilterLevel() { return statisticsFilterLevel; } /** * @param filterLevel the new global {@link StatisticsFilterLevel} to set * @return this instance (for call chaining) */ public StatisticsModuleConfiguration setStatisticsFilterLevel(StatisticsFilterLevel filterLevel) { this.statisticsFilterLevel = filterLevel; return this; } /** * Configures the {@link CompactStacktraceBuilder} used by {@link CounterCategory#countStacktrace()}. * * @param matchRegexp a regular expression that each stack trace element's class must match to be included; all other elements are * omitted, while still adding the separators that would glue them together, which shows how many stacktrace steps were skipped * @param separator a string used to "glue" the stack trace element's class names together * @param includeMethodNames whether to include method names in the output, or just the line numbers * @return this instance (for call chaining) */ public StatisticsModuleConfiguration configureDefaultCompactStacktraces(String matchRegexp, String separator, boolean includeMethodNames) { configuredCompactStacktraceBuilder = new CompactStacktraceBuilder(matchRegexp, separator, includeMethodNames); return this; } /** * @return the configured {@link CompactStacktraceBuilder} if present, otherwise a {@link CompactStacktraceBuilder} with a pattern * matching all classes. */ public CompactStacktraceBuilder getDefaultCompactStacktraceBuilder() { if (configuredCompactStacktraceBuilder == null) { // if nothing is configured, fall back to logging everything configuredCompactStacktraceBuilder = new CompactStacktraceBuilder(".*"); } return configuredCompactStacktraceBuilder; } }