changeset 2720:3beac5ce66b4

Removal of obsolete perflog logging level Reviewed-by: jerboaa Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-June/023972.html Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-July/023977.html
author Christopher Koehler <chkoehle@redhat.com>
date Mon, 17 Jul 2017 09:10:13 -0400
parents 597f67d95197
children 1210fbb16bd5
files common/core/src/main/java/com/redhat/thermostat/common/utils/LoggingUtils.java config/pom.xml config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatter.java config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterBuilder.java config/src/main/java/com/redhat/thermostat/shared/perflog/internal/PerformanceLogFormatterImpl.java config/src/test/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterTest.java config/src/test/java/com/redhat/thermostat/shared/perflog/internal/PerfomanceLogFormatterImplTest.java
diffstat 7 files changed, 0 insertions(+), 458 deletions(-) [+]
line wrap: on
line diff
--- a/common/core/src/main/java/com/redhat/thermostat/common/utils/LoggingUtils.java	Tue Jul 11 17:00:25 2017 -0400
+++ b/common/core/src/main/java/com/redhat/thermostat/common/utils/LoggingUtils.java	Mon Jul 17 09:10:13 2017 -0400
@@ -53,36 +53,6 @@
  */
 public final class LoggingUtils {
 
-    public enum LogLevel {
-        /*
-         * Custom log level, intended for use with Thermostat's internal performance
-         * analysis framework.  Log messages at this level should be formatted using
-         * {@link com.redhat.thermostat.shared.perflog.PerformanceLogFormatter}.
-         */
-        PERFLOG(new Level("PERFLOG", 50) {
-            private static final long serialVersionUID = 1L;
-        }),
-        ALL(Level.ALL),
-        CONFIG(Level.CONFIG),
-        FINE(Level.FINE),
-        FINER(Level.FINER),
-        FINEST(Level.FINEST),
-        INFO(Level.INFO),
-        OFF(Level.OFF),
-        SEVERE(Level.SEVERE),
-        WARNING(Level.WARNING);
-
-        private Level level;
-
-        LogLevel(Level level) {
-            this.level = level;
-        }
-
-        public Level getLevel() {
-            return level;
-        }
-    }
-
     // package private for testing
     static final String ROOTNAME = "com.redhat.thermostat";
 
--- a/config/pom.xml	Tue Jul 11 17:00:25 2017 -0400
+++ b/config/pom.xml	Mon Jul 17 09:10:13 2017 -0400
@@ -62,7 +62,6 @@
             <Export-Package>
               com.redhat.thermostat.shared.locale,
               com.redhat.thermostat.shared.config,
-              com.redhat.thermostat.shared.perflog,
             </Export-Package>
             <Private-Package>
               com.redhat.thermostat.shared.config.internal,
--- a/config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatter.java	Tue Jul 11 17:00:25 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
- * Copyright 2012-2017 Red Hat, Inc.
- *
- * This file is part of Thermostat.
- *
- * Thermostat is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your
- * option) any later version.
- *
- * Thermostat 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 Thermostat; see the file COPYING.  If not see
- * <http://www.gnu.org/licenses/>.
- *
- * Linking this code with other modules is making a combined work
- * based on this code.  Thus, the terms and conditions of the GNU
- * General Public License cover the whole combination.
- *
- * As a special exception, the copyright holders of this code give
- * you permission to link this code with independent modules to
- * produce an executable, regardless of the license terms of these
- * independent modules, and to copy and distribute the resulting
- * executable under terms of your choice, provided that you also
- * meet, for each linked independent module, the terms and conditions
- * of the license of that module.  An independent module is a module
- * which is not derived from or based on this code.  If you modify
- * this code, you may extend this exception to your version of the
- * library, but you are not obligated to do so.  If you do not wish
- * to do so, delete this exception statement from your version.
- */
-
-package com.redhat.thermostat.shared.perflog;
-
-
-/**
- * 
- * Log formatter for Thermostat internal performance metrics.
- * 
- * @see PerformanceLogFormatterBuilder
- *
- */
-public interface PerformanceLogFormatter {
-    
-    /**
-     * 
-     * Log tags the Thermostat internal log analyzer knows about.
-     *
-     */
-    public enum LogTag {
-        
-        // Note: Keep string values in sync with thermostat-perflog-analyzer's
-        //       LogTag.
-        
-        /**
-         * Log tag for storage related messages. In particular messages emitted
-         * from backing proxied storage (usually from within the webapp).
-         */
-        STORAGE_BACKING_PROXIED("s-backing-proxied"),
-        /**
-         * Log tag for storage related messages. In particular messages emitted
-         * from front-end storage.
-         */
-        STORAGE_FRONT_END("s-front-end"),
-        ;
-        
-        private final String value;
-        
-        LogTag(String value) {
-            this.value = value;
-        }
-        
-        @Override
-        public String toString() {
-            return value;
-        }
-    }
-
-    /**
-     * Format a log message with the given duration.
-     * 
-     * @param tag         Useful if logs are split across files
-     *                    and should get combined or aggregated in some way via
-     *                    this token. See also {@link LogTag#toString()}.
-     * @param msg The message to log
-     * @param durationInNanos
-     * @return A formatted string suitable for logging at the
-     *         {@link com.redhat.thermostat.common.utils.LoggingUtils.PERFLOG}
-     *         level.
-     */
-    public String format(LogTag tag, String msg, long durationInNanos);
-    
-    /**
-     * Format a log message.
-     * 
-     * @param tag Useful if logs are split across files
-     *                    and should get combined or aggregated in some way via
-     *                    this token. See also {@link LogTag#toString()}.
-     * @param msg The message to log
-     * @return A formatted string suitable for logging at the
-     *         {@link com.redhat.thermostat.common.utils.LoggingUtils.PERFLOG}
-     *         level.
-     */
-    public String format(LogTag tag, String msg);
-}
--- a/config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterBuilder.java	Tue Jul 11 17:00:25 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Copyright 2012-2017 Red Hat, Inc.
- *
- * This file is part of Thermostat.
- *
- * Thermostat is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your
- * option) any later version.
- *
- * Thermostat 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 Thermostat; see the file COPYING.  If not see
- * <http://www.gnu.org/licenses/>.
- *
- * Linking this code with other modules is making a combined work
- * based on this code.  Thus, the terms and conditions of the GNU
- * General Public License cover the whole combination.
- *
- * As a special exception, the copyright holders of this code give
- * you permission to link this code with independent modules to
- * produce an executable, regardless of the license terms of these
- * independent modules, and to copy and distribute the resulting
- * executable under terms of your choice, provided that you also
- * meet, for each linked independent module, the terms and conditions
- * of the license of that module.  An independent module is a module
- * which is not derived from or based on this code.  If you modify
- * this code, you may extend this exception to your version of the
- * library, but you are not obligated to do so.  If you do not wish
- * to do so, delete this exception statement from your version.
- */
-
-package com.redhat.thermostat.shared.perflog;
-
-import java.util.concurrent.TimeUnit;
-
-import com.redhat.thermostat.shared.perflog.internal.PerformanceLogFormatterImpl;
-
-public class PerformanceLogFormatterBuilder {
-
-    private TimeUnit timeUnitToPrint;
-    
-    private PerformanceLogFormatterBuilder() {
-        // only instantiate via factory method
-    }
-    
-    public static PerformanceLogFormatterBuilder create() {
-        return new PerformanceLogFormatterBuilder();
-    }
-    
-    /**
-     * @param timeUnit The time unit to use in logs.
-     * @return This instance.
-     */
-    public PerformanceLogFormatterBuilder setLoggedTimeUnit(TimeUnit timeUnit) {
-        this.timeUnitToPrint = timeUnit;
-        return this;
-    }
-
-    /**
-     * 
-     * @return The configured logger.
-     * 
-     * @throws IllegalStateException if no filename or timeunit was set.
-     */
-    public PerformanceLogFormatter build() {
-        if (timeUnitToPrint == null) {
-            throw new IllegalStateException("Must set time unit");
-        }
-        return new PerformanceLogFormatterImpl(timeUnitToPrint);
-    }
-}
--- a/config/src/main/java/com/redhat/thermostat/shared/perflog/internal/PerformanceLogFormatterImpl.java	Tue Jul 11 17:00:25 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
- * Copyright 2012-2017 Red Hat, Inc.
- *
- * This file is part of Thermostat.
- *
- * Thermostat is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your
- * option) any later version.
- *
- * Thermostat 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 Thermostat; see the file COPYING.  If not see
- * <http://www.gnu.org/licenses/>.
- *
- * Linking this code with other modules is making a combined work
- * based on this code.  Thus, the terms and conditions of the GNU
- * General Public License cover the whole combination.
- *
- * As a special exception, the copyright holders of this code give
- * you permission to link this code with independent modules to
- * produce an executable, regardless of the license terms of these
- * independent modules, and to copy and distribute the resulting
- * executable under terms of your choice, provided that you also
- * meet, for each linked independent module, the terms and conditions
- * of the license of that module.  An independent module is a module
- * which is not derived from or based on this code.  If you modify
- * this code, you may extend this exception to your version of the
- * library, but you are not obligated to do so.  If you do not wish
- * to do so, delete this exception statement from your version.
- */
-
-package com.redhat.thermostat.shared.perflog.internal;
-
-import java.util.concurrent.TimeUnit;
-
-import com.redhat.thermostat.shared.perflog.PerformanceLogFormatter;
-import com.redhat.thermostat.shared.perflog.PerformanceLogFormatterBuilder;
-import com.redhat.thermostat.shared.perflog.internal.TimeStampProvider;
-
-/**
- * @see PerformanceLogFormatter
- * @see PerformanceLogFormatterBuilder
- */
-public class PerformanceLogFormatterImpl implements PerformanceLogFormatter {
-    
-    private static final char MICRO_SIGN = '\u00b5';
-    private static final String DAYS_SHORT = "days";
-    private static final String HOURS_SHORT = "hours";
-    private static final String MINUTES_SHORT = "mins";
-    private static final String SECONDS_SHORT = "s";
-    private static final String MILLIS_SHORT = "ms";
-    private static final String MICROS_SHORT = MICRO_SIGN + "s";
-    private static final String NANOS_SHORT = "ns";
-    // unique-token, msg, duration
-    private static final String FORMAT_WITH_DURATION = "1|%s|%s|%s";
-    // unique-token, msg
-    private static final String FORMAT_NO_DURATION = "0|%s|%s";
-    private final TimeUnit timeUnit;
-    private final String durationFormat;
-    private TimeStampProvider ts;
-    
-    public PerformanceLogFormatterImpl(TimeUnit timeUnit) {
-        this.timeUnit = timeUnit;
-        this.durationFormat = getDurationFormat(timeUnit);
-        ts = new TimeStampProvider();
-    }
-
-    private String getDurationFormat(TimeUnit unit) {
-        String format = "%s ";
-        switch (unit) {
-        case DAYS:
-            return format + DAYS_SHORT;
-        case HOURS:
-            return format + HOURS_SHORT;
-        case MINUTES:
-            return format + MINUTES_SHORT;
-        case SECONDS:
-            return format + SECONDS_SHORT;
-        case MILLISECONDS:
-            return format + MILLIS_SHORT;
-        case MICROSECONDS:
-            return format + MICROS_SHORT;
-        case NANOSECONDS:
-            return format + NANOS_SHORT;
-        default:
-            return format;
-        }
-    }
-
-    @Override
-    public String format(LogTag tag, String msg, long durationInNanos) {
-        StringBuilder sb = new StringBuilder(ts.getTimeStamp());
-        String duration = getFormattedDuration(durationInNanos);
-        sb.append(String.format(FORMAT_WITH_DURATION, tag.toString(), msg, duration));
-        return sb.toString();
-    }
-    
-    @Override
-    public String format(LogTag tag, String msg) {
-        StringBuilder sb = new StringBuilder(ts.getTimeStamp());
-        sb.append(String.format(FORMAT_NO_DURATION, tag.toString(), msg));
-        return sb.toString();
-    }
-
-    private String getFormattedDuration(long durationInNanos) {
-        long convertedTime = timeUnit.convert(durationInNanos, TimeUnit.NANOSECONDS);
-        return String.format(durationFormat, convertedTime);
-    }
-
-}
--- a/config/src/test/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterTest.java	Tue Jul 11 17:00:25 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
- * Copyright 2012-2017 Red Hat, Inc.
- *
- * This file is part of Thermostat.
- *
- * Thermostat is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your
- * option) any later version.
- *
- * Thermostat 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 Thermostat; see the file COPYING.  If not see
- * <http://www.gnu.org/licenses/>.
- *
- * Linking this code with other modules is making a combined work
- * based on this code.  Thus, the terms and conditions of the GNU
- * General Public License cover the whole combination.
- *
- * As a special exception, the copyright holders of this code give
- * you permission to link this code with independent modules to
- * produce an executable, regardless of the license terms of these
- * independent modules, and to copy and distribute the resulting
- * executable under terms of your choice, provided that you also
- * meet, for each linked independent module, the terms and conditions
- * of the license of that module.  An independent module is a module
- * which is not derived from or based on this code.  If you modify
- * this code, you may extend this exception to your version of the
- * library, but you are not obligated to do so.  If you do not wish
- * to do so, delete this exception statement from your version.
- */
-
-package com.redhat.thermostat.shared.perflog;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-import com.redhat.thermostat.shared.perflog.PerformanceLogFormatter.LogTag;
-
-/**
- * Verifies that log tags the analyzer knows about keep working.
- * That is, if a test regarding log tags fails code in dev/perflog-analyzer
- * will need updating.
- *
- */
-public class PerformanceLogFormatterTest {
-
-    @Test
-    public void logTagsAreCorrect() {
-        assertEquals("s-backing-proxied is used in the perflog-analyzer as log tag",
-                     "s-backing-proxied", LogTag.STORAGE_BACKING_PROXIED.toString());
-        assertEquals("s-front-end is used in the perflog-analyzer as log tag",
-                "s-front-end", LogTag.STORAGE_FRONT_END.toString());
-    }
-}
--- a/config/src/test/java/com/redhat/thermostat/shared/perflog/internal/PerfomanceLogFormatterImplTest.java	Tue Jul 11 17:00:25 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
- * Copyright 2012-2017 Red Hat, Inc.
- *
- * This file is part of Thermostat.
- *
- * Thermostat is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your
- * option) any later version.
- *
- * Thermostat 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 Thermostat; see the file COPYING.  If not see
- * <http://www.gnu.org/licenses/>.
- *
- * Linking this code with other modules is making a combined work
- * based on this code.  Thus, the terms and conditions of the GNU
- * General Public License cover the whole combination.
- *
- * As a special exception, the copyright holders of this code give
- * you permission to link this code with independent modules to
- * produce an executable, regardless of the license terms of these
- * independent modules, and to copy and distribute the resulting
- * executable under terms of your choice, provided that you also
- * meet, for each linked independent module, the terms and conditions
- * of the license of that module.  An independent module is a module
- * which is not derived from or based on this code.  If you modify
- * this code, you may extend this exception to your version of the
- * library, but you are not obligated to do so.  If you do not wish
- * to do so, delete this exception statement from your version.
- */
-
-package com.redhat.thermostat.shared.perflog.internal;
-
-import static org.junit.Assert.assertTrue;
-
-import java.util.concurrent.TimeUnit;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import com.redhat.thermostat.shared.perflog.PerformanceLogFormatter.LogTag;
-
-public class PerfomanceLogFormatterImplTest {
-
-    private PerformanceLogFormatterImpl formatter;
-    
-    @Before
-    public void setup() {
-        formatter = new PerformanceLogFormatterImpl(TimeUnit.MILLISECONDS);
-    }
-    
-    /*
-     * verify that toString() is called on log tag values.
-     */
-    @Test
-    public void verifyLogTagLoggingCallsToStringOnValue() {
-        String msg = formatter.format(LogTag.STORAGE_BACKING_PROXIED, "ignored");
-        assertTrue(msg.contains(LogTag.STORAGE_BACKING_PROXIED.toString()));
-        msg = formatter.format(LogTag.STORAGE_FRONT_END, "ignored", 20);
-        assertTrue(msg.contains(LogTag.STORAGE_FRONT_END.toString()));
-    }
-}