On Thu, 21 Feb 2013 15:30:27 +0900 (JST)
[email protected] (YAMAMOTO Takashi) wrote:

> hi,
> 
>> On Fri,  8 Feb 2013 12:28:12 +0900
>> YAMAMOTO Takashi <[email protected]> wrote:
>> 
>>> Signed-off-by: YAMAMOTO Takashi <[email protected]>
>>> 
>>> BRICK dpset
>>>   PROVIDES EventPortModify TO ['PortSet']
>>>   PROVIDES EventPortAdd TO ['QuantumAdapter', 'PortSet']
>>>   PROVIDES EventDP TO ['QuantumAdapter', 'PortSet']
>>>   PROVIDES EventPortDelete TO ['QuantumAdapter', 'PortSet']
>>>   CONSUMES EventOFPSwitchFeatures
>>>   CONSUMES EventOFPStateChange
>>>   CONSUMES EventOFPPortStatus
>>> BRICK conf_switch
>>>   PROVIDES EventConfSwitchDel TO ['TunnelPortUpdater', 'QuantumAdapter']
>>>   PROVIDES EventConfSwitchSet TO ['TunnelPortUpdater', 'QuantumAdapter']
>>> BRICK network
>>>   PROVIDES EventNetworkDel TO ['PortSet']
>>>   PROVIDES EventNetworkPort TO ['TunnelPortUpdater', 'PortSet']
>>>   PROVIDES EventMacAddress TO ['PortSet']
>>> BRICK TunnelPortUpdater
>>>   CONSUMES EventConfSwitchDel
>>>   CONSUMES EventNetworkPort
>>>   CONSUMES EventConfSwitchSet
>>>     :
>>>     :
>>>     :
>>>     :
>>> ---
>>>  ryu/base/app_manager.py | 7 +++++++
>>>  1 file changed, 7 insertions(+)
>>> 
>>> diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
>>> index 2fdd28a..321a5c8 100644
>>> --- a/ryu/base/app_manager.py
>>> +++ b/ryu/base/app_manager.py
>>> @@ -175,6 +175,13 @@ class AppManager(object):
>>>                          brick = SERVICE_BRICKS[name]
>>>                          brick.register_observer(m.ev_cls, i.name)
>>>  
>>> +        for brick, i in SERVICE_BRICKS.items():
>>> +            LOG.debug("BRICK %s" % brick)
>>> +            for ev_cls, list in i.observers.items():
>>> +                LOG.debug("  PROVIDES %s TO %s" % (ev_cls.__name__, list))
>>> +            for ev_cls, handler in i.event_handlers.items():
>>> +                LOG.debug("  CONSUMES %s" % (ev_cls.__name__,))
>> 
>> I applied this but I don't think this is the correct approach.
> 
> sorry, i don't understand.
> what approach are you talking about?

I don't like app_manager's global logger. I prefer logging per
service.

diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
index a9895a2..b913159 100644
--- a/ryu/base/app_manager.py
+++ b/ryu/base/app_manager.py
@@ -56,12 +56,14 @@ class RyuApp(object):
 
     def __init__(self, *_args, **_kwargs):
         super(RyuApp, self).__init__()
-        self.name = self.__class__.__name__
+        if not getattr(self, 'name', None):
+            self.name = self.__class__.__name__
         self.event_handlers = {}
         self.observers = {}
         self.threads = []
         self.events = Queue()
         self.threads.append(gevent.spawn(self._event_loop))
+        self.log = logging.getLogger(self.name)
 
     def register_handler(self, ev_cls, handler):
         assert callable(handler)
@@ -90,12 +92,12 @@ class RyuApp(object):
 
     def send_event(self, name, ev):
         if name in SERVICE_BRICKS:
-            LOG.debug("EVENT %s->%s %s" %
-                      (self.name, name, ev.__class__.__name__))
+            self.log.debug("EVENT %s->%s %s" %
+                           (self.name, name, ev.__class__.__name__))
             SERVICE_BRICKS[name]._send_event(ev)
         else:
-            LOG.debug("EVENT LOST %s->%s %s" %
-                      (self.name, name, ev.__class__.__name__))
+            self.log.debug("EVENT LOST %s->%s %s" %
+                           (self.name, name, ev.__class__.__name__))
 
     def send_event_to_observers(self, ev):
         for observer in self.get_observers(ev):
@@ -185,11 +187,11 @@ class AppManager(object):
                         brick.register_observer(m.ev_cls, i.name)
 
         for brick, i in SERVICE_BRICKS.items():
-            LOG.debug("BRICK %s" % brick)
+            i.log.debug("BRICK %s" % brick)
             for ev_cls, list in i.observers.items():
-                LOG.debug("  PROVIDES %s TO %s" % (ev_cls.__name__, list))
+                i.log.debug("  PROVIDES %s TO %s" % (ev_cls.__name__, list))
             for ev_cls, handler in i.event_handlers.items():
-                LOG.debug("  CONSUMES %s" % (ev_cls.__name__,))
+                i.log.debug("  CONSUMES %s" % (ev_cls.__name__,))
 
     def close(self):
         def close_all(close_dict):
diff --git a/ryu/controller/ofp_handler.py b/ryu/controller/ofp_handler.py
index 2ac7251..a35cebb 100644
--- a/ryu/controller/ofp_handler.py
+++ b/ryu/controller/ofp_handler.py
@@ -43,8 +43,8 @@ LOG = logging.getLogger('ryu.controller.ofp_handler')
 
 class OFPHandler(ryu.base.app_manager.RyuApp):
     def __init__(self, *args, **kwargs):
-        super(OFPHandler, self).__init__(*args, **kwargs)
         self.name = 'ofp_event'
+        super(OFPHandler, self).__init__(*args, **kwargs)
 
     @staticmethod
     def _hello_failed(datapath, error_desc):

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to