From e448afbfb51d405f9eb1d1140405c9619ca79153 Mon Sep 17 00:00:00 2001 From: ulrich Date: Sun, 21 Mar 2021 17:33:57 +0000 Subject: [PATCH] Logging, Query Map --- src/logging.properties | 71 +++++++++++++++++++++++ src/de/uhilger/avdirektor/handler/PlayHandler.java | 41 +++++-------- src/de/uhilger/avdirektor/handler/OMXPlayer.java | 15 +++++ 3 files changed, 102 insertions(+), 25 deletions(-) diff --git a/src/de/uhilger/avdirektor/handler/OMXPlayer.java b/src/de/uhilger/avdirektor/handler/OMXPlayer.java index d8f1f00..82acdde 100644 --- a/src/de/uhilger/avdirektor/handler/OMXPlayer.java +++ b/src/de/uhilger/avdirektor/handler/OMXPlayer.java @@ -16,6 +16,8 @@ import java.io.Writer; import java.net.HttpURLConnection; import java.net.URL; +import java.util.HashMap; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -27,6 +29,19 @@ private static final Logger logger = Logger.getLogger(OMXPlayer.class.getName()); + protected Map getQueryMap(HttpExchange t) { + HashMap map = new HashMap(); + String query = t.getRequestURI().getQuery(); + if(query != null && query.length() > 0) { + String qParts[] = query.split("&"); + for(String qPart : qParts) { + //logger.info("qPart: " + qPart); + String pParts[] = qPart.split("="); + map.put(pParts[0], pParts[1]); + } + } + return map; + } /** * Einen Prozess zum Abspielen mit dem omxplayer starten diff --git a/src/de/uhilger/avdirektor/handler/PlayHandler.java b/src/de/uhilger/avdirektor/handler/PlayHandler.java index 5ceda70..80b5214 100644 --- a/src/de/uhilger/avdirektor/handler/PlayHandler.java +++ b/src/de/uhilger/avdirektor/handler/PlayHandler.java @@ -5,7 +5,9 @@ import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; +import java.util.Map; import java.util.Set; +import java.util.function.Consumer; import java.util.logging.Level; import java.util.logging.Logger; @@ -52,37 +54,26 @@ @Override public void handle(HttpExchange t) throws IOException { - logger.log(Level.INFO, "RequestURI.getPath: {0}", t.getRequestURI().getPath()); - - String path = t.getRequestURI().getPath(); - String[] parts = path.split("/"); - for (String part : parts) { - logger.log(Level.INFO, "part: {0}", part); - } - //logger.log(Level.INFO, "query: {0}", t.getRequestURI().getQuery()); - - HashMap map = new HashMap(); - String query = t.getRequestURI().getQuery(); - if(query != null && query.length() > 0) { - String qParts[] = query.split("&"); - for(String qPart : qParts) { - //logger.info("qPart: " + qPart); - String pParts[] = qPart.split("="); - map.put(pParts[0], pParts[1]); - } - } + logger.log(Level.FINE, "RequestURI.getPath: {0}", t.getRequestURI().getPath()); + Map map = getQueryMap(t); Set keys = map.keySet(); - keys.forEach(key -> { - logger.info("key " + key + " value " + map.get(key)); + StringBuffer buf = new StringBuffer(); + buf.append("play"); + buf.append(System.lineSeparator()); + keys.forEach((Object key) -> { + buf.append("key: "); + buf.append(key); + buf.append(System.lineSeparator()); + buf.append("value: "); + buf.append(map.get(key)); + buf.append(System.lineSeparator()); + logger.log(Level.FINE, "key {0} value {1}", new Object[]{key, map.get(key)}); }); - - String response = "play"; + String response = buf.toString(); t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); - } - } diff --git a/src/logging.properties b/src/logging.properties new file mode 100644 index 0000000..3f0ec2e --- /dev/null +++ b/src/logging.properties @@ -0,0 +1,71 @@ +############################################################ +# Default Logging Configuration File +# +# You can use a different file by specifying a filename +# with the java.util.logging.config.file system property. +# For example java -Djava.util.logging.config.file=myfile +############################################################ + +############################################################ +# Global properties +############################################################ + +# "handlers" specifies a comma separated list of log Handler +# classes. These handlers will be installed during VM startup. +# Note that these classes must be on the system classpath. +# By default we only configure a ConsoleHandler, which will only +# show messages at the INFO and above levels. +# handlers= java.util.logging.ConsoleHandler + +# To also add the FileHandler, use the following line instead. +# handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler + +# Default global logging level. +# This specifies which kinds of events are logged across +# all loggers. For any given facility this global level +# can be overriden by a facility specific level +# Note that the ConsoleHandler also has a separate level +# setting to limit messages printed to the console. +# .level= FINE +.level = NONE + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +# default file output is in user's home directory. +java.util.logging.FileHandler.pattern = %h/java%u.log +# java.util.logging.FileHandler.pattern = /media/extmirror/tomcat747/logs/tv_%u.log +# java.util.logging.FileHandler.pattern = ${catalina.base}/logs/file-cms_%u.log +# java.util.logging.FileHandler.limit = 50000 +# java.util.logging.FileHandler.count = 1 +# java.util.logging.FileHandler.count = 2 +# java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter +java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter +# java.util.logging.FileHandler.level = FINER + +# Limit the message that are printed on the console to INFO and above. +# java.util.logging.ConsoleHandler.level = INFO +# java.util.logging.ConsoleHandler.level = FINER +# java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + +# Example to customize the SimpleFormatter output format +# to print one-line log message like this: +# <level>: <log message> [<date/time>] +# +# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +# For example, set the com.xyz.foo logger to only log SEVERE +# messages: +# com.xyz.foo.level = SEVERE +# de.uhilger.filecms.handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler +# de.uhilger.filecms.level = FINEST +# de.uhilger.wbx.handlers = java.util.logging.ConsoleHandler +# de.uhilger.wbx.level = FINEST +de.uhilger.avdirektor.level = INFO \ No newline at end of file -- Gitblit v1.9.3