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