You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2014/07/29 22:58:10 UTC

[11/50] git commit: support loglevel to multilang's log interface and python & ruby implementation

support loglevel to multilang's log interface and python & ruby implementation


Project: http://git-wip-us.apache.org/repos/asf/incubator-storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-storm/commit/ea30b703
Tree: http://git-wip-us.apache.org/repos/asf/incubator-storm/tree/ea30b703
Diff: http://git-wip-us.apache.org/repos/asf/incubator-storm/diff/ea30b703

Branch: refs/heads/security
Commit: ea30b703865bf043bea2fc4f7c689f5a13d59c0f
Parents: 69b4601
Author: dashengju <da...@qq.com>
Authored: Sun Jul 20 17:34:41 2014 +0800
Committer: dashengju <da...@qq.com>
Committed: Sun Jul 20 17:34:41 2014 +0800

----------------------------------------------------------------------
 .../storm/multilang/JsonSerializer.java         |  7 ++++-
 .../jvm/backtype/storm/multilang/ShellMsg.java  | 26 ++++++++++++++++
 .../jvm/backtype/storm/spout/ShellSpout.java    | 30 ++++++++++++++++--
 .../src/jvm/backtype/storm/task/ShellBolt.java  | 32 ++++++++++++++++++--
 .../jvm/backtype/storm/utils/ShellProcess.java  |  2 +-
 storm-core/src/multilang/py/storm.py            | 19 ++++++++++--
 storm-core/src/multilang/rb/storm.rb            | 24 +++++++++++++--
 7 files changed, 129 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ea30b703/storm-core/src/jvm/backtype/storm/multilang/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/multilang/JsonSerializer.java b/storm-core/src/jvm/backtype/storm/multilang/JsonSerializer.java
index 4d3c3f8..fc97073 100644
--- a/storm-core/src/jvm/backtype/storm/multilang/JsonSerializer.java
+++ b/storm-core/src/jvm/backtype/storm/multilang/JsonSerializer.java
@@ -144,7 +144,12 @@ public class JsonSerializer implements ISerializer {
         shellMsg.setMetricName(metricName);
         
         Object paramsObj = msg.get("params");
-        shellMsg.setMetricParams(paramsObj); 
+        shellMsg.setMetricParams(paramsObj);
+
+        if (command.equals("log")) {
+            long logLevel = (Long)msg.get("level");
+            shellMsg.setLogLevel((int)logLevel);
+        }
 
         return shellMsg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ea30b703/storm-core/src/jvm/backtype/storm/multilang/ShellMsg.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/multilang/ShellMsg.java b/storm-core/src/jvm/backtype/storm/multilang/ShellMsg.java
index ed803c4..e035df0 100644
--- a/storm-core/src/jvm/backtype/storm/multilang/ShellMsg.java
+++ b/storm-core/src/jvm/backtype/storm/multilang/ShellMsg.java
@@ -46,6 +46,24 @@ public class ShellMsg {
     private String metricName;
     private Object metricParams;
 
+    //logLevel
+    public enum ShellLogLevel {
+        TRACE, DEBUG, INFO, WARN, ERROR;
+
+        public static ShellLogLevel fromInt(int i) {
+            switch (i) {
+                case 0: return TRACE;
+                case 1: return DEBUG;
+                case 2: return INFO;
+                case 3: return WARN;
+                case 4: return ERROR;
+                default: return INFO;
+            }
+        }
+    }
+
+    private ShellLogLevel logLevel = ShellLogLevel.INFO;
+
     public String getCommand() {
         return command;
     }
@@ -139,4 +157,12 @@ public class ShellMsg {
     public Object getMetricParams() {
         return metricParams;
     }
+
+    public ShellLogLevel getLogLevel() {
+        return logLevel;
+    }
+
+    public void setLogLevel(int logLevel) {
+        this.logLevel = ShellLogLevel.fromInt(logLevel);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ea30b703/storm-core/src/jvm/backtype/storm/spout/ShellSpout.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/spout/ShellSpout.java b/storm-core/src/jvm/backtype/storm/spout/ShellSpout.java
index b271bfd..70bac5d 100644
--- a/storm-core/src/jvm/backtype/storm/spout/ShellSpout.java
+++ b/storm-core/src/jvm/backtype/storm/spout/ShellSpout.java
@@ -131,8 +131,7 @@ public class ShellSpout implements ISpout {
                 if (command.equals("sync")) {
                     return;
                 } else if (command.equals("log")) {
-                    String msg = shellMsg.getMsg();
-                    LOG.info("Shell msg: " + msg + _process.getProcessInfoString());
+                    handleLog(shellMsg);
                 } else if (command.equals("emit")) {
                     String stream = shellMsg.getStream();
                     Long task = shellMsg.getTask();
@@ -158,6 +157,33 @@ public class ShellSpout implements ISpout {
         }
     }
 
+    private void handleLog(ShellMsg shellMsg) {
+        String msg = shellMsg.getMsg();
+        msg = "ShellLog " + _process.getProcessInfoString() + " " + msg;
+        ShellMsg.ShellLogLevel logLevel = shellMsg.getLogLevel();
+
+        switch (logLevel) {
+            case TRACE:
+                LOG.trace(msg);
+                break;
+            case DEBUG:
+                LOG.debug(msg);
+                break;
+            case INFO:
+                LOG.info(msg);
+                break;
+            case WARN:
+                LOG.warn(msg);
+                break;
+            case ERROR:
+                LOG.error(msg);
+                break;
+            default:
+                LOG.info(msg);
+                break;
+        }
+    }
+
     @Override
     public void activate() {
     }

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ea30b703/storm-core/src/jvm/backtype/storm/task/ShellBolt.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/task/ShellBolt.java b/storm-core/src/jvm/backtype/storm/task/ShellBolt.java
index 430581d..4f8bca5 100644
--- a/storm-core/src/jvm/backtype/storm/task/ShellBolt.java
+++ b/storm-core/src/jvm/backtype/storm/task/ShellBolt.java
@@ -122,8 +122,7 @@ public class ShellBolt implements IBolt {
                         } else if (command.equals("error")) {
                             handleError(shellMsg.getMsg());
                         } else if (command.equals("log")) {
-                            String msg = shellMsg.getMsg();
-                            LOG.info("Shell msg: " + msg + _process.getProcessInfoString());
+                            handleLog(shellMsg);
                         } else if (command.equals("emit")) {
                             handleEmit(shellMsg);
                         } else if (command.equals("metrics")) {
@@ -234,7 +233,34 @@ public class ShellBolt implements IBolt {
                     shellMsg.getStream(), anchors, shellMsg.getTuple());
         }
     }
-    
+
+    private void handleLog(ShellMsg shellMsg) {
+        String msg = shellMsg.getMsg();
+        msg = "ShellLog " + _process.getProcessInfoString() + " " + msg;
+        ShellMsg.ShellLogLevel logLevel = shellMsg.getLogLevel();
+
+        switch (logLevel) {
+            case TRACE:
+                LOG.trace(msg);
+                break;
+            case DEBUG:
+                LOG.debug(msg);
+                break;
+            case INFO:
+                LOG.info(msg);
+                break;
+            case WARN:
+                LOG.warn(msg);
+                break;
+            case ERROR:
+                LOG.error(msg);
+                break;
+            default:
+                LOG.info(msg);
+                break;
+        }
+    }
+
     private void handleMetrics(ShellMsg shellMsg) {
         //get metric name
         String name = shellMsg.getMetricName();

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ea30b703/storm-core/src/jvm/backtype/storm/utils/ShellProcess.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/utils/ShellProcess.java b/storm-core/src/jvm/backtype/storm/utils/ShellProcess.java
index 79e7d50..6bcdf26 100644
--- a/storm-core/src/jvm/backtype/storm/utils/ShellProcess.java
+++ b/storm-core/src/jvm/backtype/storm/utils/ShellProcess.java
@@ -173,7 +173,7 @@ public class ShellProcess implements Serializable {
     }
 
     public String getProcessInfoString() {
-        return String.format(" pid:%s, name:%s ", pid, componentName);
+        return String.format("pid:%s, name:%s", pid, componentName);
     }
 
     public String getProcessTerminationInfoString() {

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ea30b703/storm-core/src/multilang/py/storm.py
----------------------------------------------------------------------
diff --git a/storm-core/src/multilang/py/storm.py b/storm-core/src/multilang/py/storm.py
index adeeb98..d2a3082 100755
--- a/storm-core/src/multilang/py/storm.py
+++ b/storm-core/src/multilang/py/storm.py
@@ -135,8 +135,23 @@ def fail(tup):
 def reportError(msg):
     sendMsgToParent({"command": "error", "msg": msg})
 
-def log(msg):
-    sendMsgToParent({"command": "log", "msg": msg})
+def log(msg, level=2):
+    sendMsgToParent({"command": "log", "msg": msg, "level":level})
+
+def logTrace(msg):
+    log(msg, 0)
+
+def logDebug(msg):
+    log(msg, 1)
+
+def logInfo(msg):
+    log(msg, 2)
+
+def logWarn(msg):
+    log(msg, 3)
+
+def logError(msg):
+    log(msg, 4)
 
 def rpcMetrics(name, params):
     sendMsgToParent({"command": "metrics", "name": name, "params": params})

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ea30b703/storm-core/src/multilang/rb/storm.rb
----------------------------------------------------------------------
diff --git a/storm-core/src/multilang/rb/storm.rb b/storm-core/src/multilang/rb/storm.rb
index 57d45f1..17232d1 100644
--- a/storm-core/src/multilang/rb/storm.rb
+++ b/storm-core/src/multilang/rb/storm.rb
@@ -124,8 +124,28 @@ module Storm
       send_msg_to_parent :command => :error, :msg => msg.to_s
     end
 
-    def log(msg)
-      send_msg_to_parent :command => :log, :msg => msg.to_s
+    def log(msg, level=2)
+      send_msg_to_parent :command => :log, :msg => msg.to_s, :level => level
+    end
+
+    def logTrace(msg)
+      log(msg, 0)
+    end
+
+    def logDebug(msg)
+      log(msg, 1)
+    end
+
+    def logInfo(msg)
+      log(msg, 2)
+    end
+
+    def logWarn(msg)
+      log(msg, 3)
+    end
+
+    def logError(msg)
+      log(msg, 4)
     end
 
     def handshake