added logging via logzero; read loglevel from env variable LOGLEVEL
This commit is contained in:
1
deps.md
1
deps.md
@ -2,4 +2,5 @@
|
|||||||
- pyepics
|
- pyepics
|
||||||
- bokeh
|
- bokeh
|
||||||
- colorcet
|
- colorcet
|
||||||
|
- logzero
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from weakref import WeakSet #TODO: for debugging
|
from weakref import WeakSet #TODO: for debugging
|
||||||
|
from logzero import logger as log
|
||||||
|
|
||||||
from bokeh.layouts import column, row
|
from bokeh.layouts import column, row
|
||||||
|
|
||||||
@ -33,7 +34,7 @@ class Object:
|
|||||||
if self.parent is not None:
|
if self.parent is not None:
|
||||||
self.parent.remove(self)
|
self.parent.remove(self)
|
||||||
else:
|
else:
|
||||||
print(self, "has no parent")
|
log.debug(f"{self} has no parent")
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return repr(self.layout)
|
return repr(self.layout)
|
||||||
@ -75,7 +76,7 @@ class Container(Object):
|
|||||||
self.children.remove(obj)
|
self.children.remove(obj)
|
||||||
self.layout.children.remove(obj.layout)
|
self.layout.children.remove(obj.layout)
|
||||||
if not self.children:
|
if not self.children:
|
||||||
print("Delete emptied container", self)
|
log.debug(f"Delete emptied container {self}")
|
||||||
self.delete()
|
self.delete()
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
|
@ -2,6 +2,7 @@ import itertools
|
|||||||
from collections import deque
|
from collections import deque
|
||||||
from time import time
|
from time import time
|
||||||
from weakref import WeakSet #TODO: for debugging
|
from weakref import WeakSet #TODO: for debugging
|
||||||
|
from logzero import logger as log
|
||||||
|
|
||||||
|
|
||||||
class Cache:
|
class Cache:
|
||||||
@ -72,7 +73,7 @@ class CacheView:
|
|||||||
def set_size(self, size):
|
def set_size(self, size):
|
||||||
self.size = size
|
self.size = size
|
||||||
if size > self.cache.size:
|
if size > self.cache.size:
|
||||||
print("Adjust cache size to view size...")
|
log.debug("Adjust cache size to view size...")
|
||||||
self.cache.set_size(size)
|
self.cache.set_size(size)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from random import choice
|
from random import choice
|
||||||
|
from logzero import logger as log
|
||||||
|
|
||||||
from bokeh.layouts import column
|
from bokeh.layouts import column
|
||||||
from bokeh.models import Spacer, TextInput
|
from bokeh.models import Spacer, TextInput
|
||||||
@ -42,7 +43,7 @@ class Director:
|
|||||||
def add_pvs(self, new):
|
def add_pvs(self, new):
|
||||||
new = new.upper() # PV names are all upper case
|
new = new.upper() # PV names are all upper case
|
||||||
grid = break_apart(new)
|
grid = break_apart(new)
|
||||||
print(normalized_string(grid))
|
log.debug(normalized_string(grid))
|
||||||
self.add_pvs_grid(grid)
|
self.add_pvs_grid(grid)
|
||||||
|
|
||||||
|
|
||||||
@ -57,34 +58,34 @@ class Director:
|
|||||||
def make_pvs_row(self, pvnames):
|
def make_pvs_row(self, pvnames):
|
||||||
container = Row()
|
container = Row()
|
||||||
for n in pvnames:
|
for n in pvnames:
|
||||||
print("Add PV:", n)
|
log.info(f"Add PV: {n}")
|
||||||
try:
|
try:
|
||||||
a = Actor(n)
|
a = Actor(n)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
tn = type(e).__name__
|
tn = type(e).__name__
|
||||||
print(f"failed due to: {tn}: {e}")
|
log.warning(f"failed due to: {tn}: {e}")
|
||||||
else:
|
else:
|
||||||
self.add_actor(a, container)
|
self.add_actor(a, container)
|
||||||
return container
|
return container
|
||||||
|
|
||||||
|
|
||||||
def add_actor(self, a, container):
|
def add_actor(self, a, container):
|
||||||
print("Add:", a)
|
log.info(f"Add: {a}")
|
||||||
print("Connect close button")
|
log.debug("Connect close button")
|
||||||
a.frm.on_click_close(lambda: self.remove_actor(a, container))
|
a.frm.on_click_close(lambda: self.remove_actor(a, container))
|
||||||
print("Add plot")
|
log.debug("Add plot")
|
||||||
container.append(a.frm)
|
container.append(a.frm)
|
||||||
print("Add update")
|
log.debug("Add update")
|
||||||
self.updates.append(a.update)
|
self.updates.append(a.update)
|
||||||
|
|
||||||
|
|
||||||
def remove_actor(self, a, container):
|
def remove_actor(self, a, container):
|
||||||
print("Remove:", a)
|
log.info(f"Remove: {a}")
|
||||||
print("Remove update")
|
log.debug("Remove update")
|
||||||
self.updates.remove(a.update)
|
self.updates.remove(a.update)
|
||||||
print("Remove plot")
|
log.debug("Remove plot")
|
||||||
container.remove(a.frm)
|
container.remove(a.frm)
|
||||||
print("Delete")
|
log.debug("Delete")
|
||||||
a.delete()
|
a.delete()
|
||||||
|
|
||||||
|
|
||||||
|
9
kabuki/logcfg.py
Normal file
9
kabuki/logcfg.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import os
|
||||||
|
import logzero
|
||||||
|
|
||||||
|
|
||||||
|
LOGLEVEL = os.environ.get("LOGLEVEL", "WARNING").upper()
|
||||||
|
logzero.loglevel(LOGLEVEL)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,16 +1,13 @@
|
|||||||
|
from logzero import logger as log
|
||||||
|
|
||||||
|
|
||||||
def bind(obj, handler):
|
def bind(obj, handler):
|
||||||
obj.on_change("value", cb(handler))
|
obj.on_change("value", cb(handler))
|
||||||
|
|
||||||
def cb(handler):
|
def cb(handler):
|
||||||
def wrapper(_attr, _old, new):
|
|
||||||
handler(new)
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
def cb_dbg(handler):
|
|
||||||
fn = handler.__name__
|
fn = handler.__name__
|
||||||
def wrapper(attr, old, new):
|
def wrapper(attr, old, new):
|
||||||
print(f"Callback {fn}: attribute {repr(attr)} changed from {repr(old)} to {repr(new)}")
|
log.debug(f"Callback {fn}: attribute {repr(attr)} changed from {repr(old)} to {repr(new)}")
|
||||||
handler(new)
|
handler(new)
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user