Skip to content

Commit

Permalink
Merge pull request #71 from s4hri/dev-8.2.x
Browse files Browse the repository at this point in the history
Improving logging and reducing output in the stdout
  • Loading branch information
ddetommaso authored Oct 25, 2024
2 parents 494ebc2 + da0ee25 commit 2c30183
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 13 deletions.
9 changes: 6 additions & 3 deletions examples/7.FSM/1.semaphore/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,20 @@
import enum
import time
import random
import logging

logger = logging.getLogger("fsm")

def on_RED(data):
print("Stop!")
logger.info("Stop!")
time.sleep(data)

def on_YELLOW(data):
print("Slow down!")
logger.info("Slow down!")
time.sleep(data)

def on_GREEN(data):
print("Go!")
logger.info("Go!")
time.sleep(data)

fsm = FSM("Semaphore")
Expand Down
Binary file modified examples/7.FSM/1.semaphore/diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 6 additions & 3 deletions examples/7.FSM/2.semaphore_subs/1.pub.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@
from datetime import date

import time
import logging

logger = logging.getLogger("FSM/SEMAPHORE")

class Semaphore(FSM):

Expand All @@ -46,15 +49,15 @@ def __init__(self):
self.addTransition("stop", "YELLOW", "init")

def on_RED(self, msg='default', wait_time=6):
print("RED STATE: Stop! Received msg: %s" % msg)
logger.info("RED STATE: Stop! Received msg: %s" % msg)
time.sleep(wait_time)

def on_YELLOW(self, msg='default', wait_time=1):
print("YELLOW STATE: Slow down! Received msg: %s" % msg)
logger.info("YELLOW STATE: Slow down! Received msg: %s" % msg)
time.sleep(wait_time)

def on_GREEN(self, msg='default', wait_time=1):
print("GREEN STATE: Go! Received msg: %s" % msg)
logger.info("GREEN STATE: Go! Received msg: %s" % msg)
time.sleep(wait_time)

class Publisher(PyiCubRESTfulServer):
Expand Down
2 changes: 1 addition & 1 deletion pyicub/core/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def getLogger():
FORMAT = '%(asctime)s - %(levelname)s - %(message)s'
FORMAT_VERBOSE = '%(asctime)s - %(levelname)s - %(module)s - %(process)d - %(thread)d - %(message)s'
FORMAT_JSON = '{"asctime": "%(asctime)-15s", "created": %(created)f, "relativeCreated": %(relativeCreated)f, "levelname": "%(levelname)s", "module": "%(module)s", "process": %(process)d, "processName": "%(processName)s", "thread": %(thread)d, "threadName": "%(threadName)s", "message": "%(message)s"}'
LOGGING_LEVEL = logging.DEBUG
LOGGING_LEVEL = logging.WARNING

def __init__(self):
_Logger.__init__(self)
Expand Down
2 changes: 1 addition & 1 deletion pyicub/fsm.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import logging
logging.basicConfig(level=logging.DEBUG)
logging.getLogger('transitions').setLevel(logging.INFO)
logging.getLogger('transitions').setLevel(logging.ERROR)

class FSM:

Expand Down
26 changes: 21 additions & 5 deletions pyicub/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@
import threading
import functools
import importlib
import logging

logging.getLogger('werkzeug').setLevel(logging.WARNING)


# A sample class that might represent a generic type
class GenericType:
Expand Down Expand Up @@ -140,6 +144,7 @@ def __init__(self, rule_prefix, host, port):
self._rule_prefix_ = rule_prefix
self._on_enter_callbacks_ = {}
self._on_exit_callbacks_ = {}
self._logger_ = logging.getLogger("iCubRESTServer")
self._flaskapp_.add_url_rule("/", methods=['GET'], view_func=self.info)
self._flaskapp_.add_url_rule("/%s" % self._rule_prefix_, methods=['GET'], view_func=self.get_robots)
self._flaskapp_.add_url_rule("/%s/tree" % self._rule_prefix_, methods=['GET'], view_func=self.get_tree)
Expand All @@ -153,6 +158,10 @@ def __init__(self, rule_prefix, host, port):
self._flaskapp_.add_url_rule("/%s/<robot_name>" % self._rule_prefix_, methods=['GET'], view_func=self.get_apps)
self._flaskapp_.add_url_rule("/%s/<robot_name>/<app_name>" % self._rule_prefix_, methods=['GET'], view_func=self.get_services)
self._flaskapp_.add_url_rule("/%s/<robot_name>/<app_name>/<target_name>" % (self._rule_prefix_), methods=['GET', 'POST'], view_func=self.wrapper_target)

@property
def logger(self):
return self._logger_

def header(self, host, port):
return "http://%s:%s" % (host, port)
Expand Down Expand Up @@ -194,13 +203,20 @@ def shutdown(self):
def wrapper_target(self, robot_name, app_name, target_name):
target_rule = self.target_rule(robot_name, app_name, target_name)
if request.method == 'GET':
return self._app_services_[robot_name][app_name][target_name]
if robot_name in self._app_services_.keys():
if app_name in self._app_services_[robot_name].keys():
if target_name in self._app_services_[robot_name][app_name].keys():
return self._app_services_[robot_name][app_name][target_name]
elif request.method == 'POST':
if target_rule in self._services_.keys():
if not type(self._services_[target_rule].target) is str:
return self.process_target(self._services_[target_rule])
elif self._app_services_[robot_name][app_name][target_name]['url'] in self._services_.keys():
return self.process_target_remote(self._services_[self._app_services_[robot_name][app_name][target_name]['url']])
elif robot_name in self._app_services_.keys():
if app_name in self._app_services_[robot_name].keys():
if target_name in self._app_services_[robot_name][app_name].keys():
if self._app_services_[robot_name][app_name][target_name]['url'] in self._services_.keys():
return self.process_target_remote(self._services_[self._app_services_[robot_name][app_name][target_name]['url']])
return []

def process_target_remote(self, service):
url = service.url
Expand Down Expand Up @@ -447,8 +463,8 @@ def process_target(self, service):
thread.start()

if req.status == iCubRequest.FAILED:
print("Request %s Failed! Exception: %s" %(req.tag, req.exception))

self.logger.error("Request %s Failed! Exception: %s" %(req.tag, req.exception))
if wait_for_completed:
req.wait_for_completed()
return jsonify(req.retval)
Expand Down

0 comments on commit 2c30183

Please sign in to comment.