From c392edccf7608d8699e6d1c4d7cd9182ff583a41 Mon Sep 17 00:00:00 2001 From: Kevin Matz Date: Thu, 12 May 2022 19:53:08 -0400 Subject: [PATCH] uniform logging --- bacon/OscListener.py | 94 ++++++++++++++++++++++---------------------- bacon/hog4.py | 8 ++-- bacon/script.py | 8 ++-- bs.py | 6 +-- 4 files changed, 60 insertions(+), 56 deletions(-) diff --git a/bacon/OscListener.py b/bacon/OscListener.py index b5f2b78..1c307bb 100644 --- a/bacon/OscListener.py +++ b/bacon/OscListener.py @@ -11,6 +11,8 @@ __all__ = [ "OscCommentMacroListener", ] +log = logging.getLogger(__name__) + # https://raw.githubusercontent.com/jszheng/py3antlr4book/master/bin/pygrun # this is a python version of TestRig def beautify_lisp_string(in_string): @@ -42,14 +44,14 @@ class OscCommentMacroListener(CommentMacroListener): def exitWait(self, ctx: CommentMacroParser.WaitContext): """On exiting the WAIT macro.""" - logging.info("Waiting %d seconds.", ctx.number().value) + log.info("Waiting %d seconds.", ctx.number().value) sleep(ctx.number().value) def enterStatement(self, ctx: CommentMacroParser.StatementContext): """On entering a statement.""" # print the lisp tree of this macro lisp_tree_str = ctx.toStringTree(recog=ctx.parser) - logging.debug(beautify_lisp_string(lisp_tree_str)) + log.debug(beautify_lisp_string(lisp_tree_str)) def enterTarget(self, ctx: CommentMacroParser.TargetContext): """On entering a target.""" @@ -81,26 +83,26 @@ class OscCommentMacroListener(CommentMacroListener): def exitMasterGo(self, ctx: CommentMacroParser.MasterGoContext): """On exiting a Go macro.""" if ctx.target() is None: - logging.info("Main GO") + log.info("Main GO") self.osc.button_press(ctx.device(), "/hog/hardware/maingo") return for i in ctx.target().targets: if isinstance(i, int) is not True: - logging.error("GO MASTER macro targets must be intigers.") + log.error("GO MASTER macro targets must be intigers.") continue if i < 0: - logging.error("Master %d is not greater than 0.", i) + log.error("Master %d is not greater than 0.", i) continue master = str(i) - logging.info("GO on master %s", master) + log.info("GO on master %s", master) self.osc.button_press(ctx.device(), "/hog/hardware/go/" + master) def exitMasterGoto(self, ctx: CommentMacroParser.MasterGotoContext): """On exiting a GOTO macro.""" if ctx.target() is not None: - logging.error("ERROR: limited to GOTO on current master only.") + log.error("ERROR: limited to GOTO on current master only.") return - logging.info("GOTO on current master.") + log.info("GOTO on current master.") cue = str(ctx.number().value) self.osc.button_press(ctx.device(), self.osc.buttonMap["goto"]) self.osc.number_entry(ctx.device(), cue) @@ -109,54 +111,54 @@ class OscCommentMacroListener(CommentMacroListener): def exitMasterHalt(self, ctx: CommentMacroParser.MasterHaltContext): """On exiting a Master Halt macro.""" if ctx.target() is None: - logging.info("Main HALT") + log.info("Main HALT") self.osc.button_press(ctx.device(), "/hog/hardware/mainhalt") return for i in ctx.target().targets: if isinstance(i, int) is not True: - logging.error("GO MASTER macro targets must be intigers.") + log.error("GO MASTER macro targets must be intigers.") continue if i < 0: - logging.error("Master %d is not greater than 0.", i) + log.error("Master %d is not greater than 0.", i) continue master = str(i) - logging.info("HALT on master %s", master) + log.info("HALT on master %s", master) self.osc.button_press(ctx.device(), "/hog/hardware/pause/"+master) def exitMasterAssert(self, ctx: CommentMacroParser.MasterAssertContext): """On exiting a Master Assert macro.""" if ctx.target() is not None: - logging.error("ERROR: limited to asserting current master only.") + log.error("ERROR: limited to asserting current master only.") return - logging.info("ASSERT on current master.") + log.info("ASSERT on current master.") self.osc.button_press(ctx.device(), "/hog/hardware/assert") def exitMasterRelease(self, ctx: CommentMacroParser.MasterReleaseContext): """On exiting a Master Release macro.""" if ctx.target() is not None: - logging.error("ERROR: limited to releasing current master only.") + log.error("ERROR: limited to releasing current master only.") return - logging.info("RELEASE on current master.") + log.info("RELEASE on current master.") self.osc.button_press(ctx.device(), "/hog/hardware/release") def exitMasterFade(self, ctx: CommentMacroParser.MasterFadeContext): """On exiting a Master Fade macro.""" if ctx.target() is None: - logging.error("ERROR: limited to fading specified masters only.") + log.error("ERROR: limited to fading specified masters only.") return level = ctx.number().value if (level < 0 or level > 100): - logging.error("Level must be between 0 and 100.") + log.error("Level must be between 0 and 100.") return for i in ctx.target().targets: if isinstance(i, int) is not True: - logging.error("FADE MASTER macro targets must be intigers.") + log.error("FADE MASTER macro targets must be intigers.") continue if i < 0: - logging.error("Master %d is not greater than 0.", i) + log.error("Master %d is not greater than 0.", i) continue master = str(i) - logging.info("Fade Master %s to %d", master, level) + log.info("Fade Master %s to %d", master, level) level *= 255 / 100 # percent in Macro, 0>255 in OSC self.osc.send_message(ctx.device(), "/hog/hardware/fader/" + master, @@ -167,24 +169,24 @@ class OscCommentMacroListener(CommentMacroListener): """On exiting a GM Fade Macro.""" level = ctx.number().value if (level < 0 or level > 100): - logging.error("Level must be between 0 and 100.") + log.error("Level must be between 0 and 100.") return - logging.info("Fading Grand Master to %d", level) + log.info("Fading Grand Master to %d", level) level *= 255 / 100 # percent in Macro, 0>255 in OSC self.osc.send_message(ctx.device(), "/hog/hardware/fader/0", level) def exitMasterChoose(self, ctx: CommentMacroParser.MasterChooseContext): """On exiting a Master Choose macro.""" if ctx.number().value < 0: - logging.error("Master must be greater than 0.") + log.error("Master must be greater than 0.") return master = str(ctx.number().value) - logging.info("Choose Master %s", master) + log.info("Choose Master %s", master) self.osc.button_press(ctx.device(), "/hog/hardware/choose/" + master) def exitReleaseAll(self, ctx: CommentMacroParser.ReleaseAllContext): """On exiting a Release All Macro.""" - logging.info("Release All") + log.info("Release All") self.osc.send_message(ctx.device(), "/hog/hardware/pig", self.osc.buttonDOWN) self.osc.button_press(ctx.device(), "/hog/hardware/release") @@ -194,82 +196,82 @@ class OscCommentMacroListener(CommentMacroListener): def exitListGo(self, ctx: CommentMacroParser.ListGoContext): """On exiting a List GO macro.""" for i in ctx.target().targets: - logging.info("Go on List %d", i) + log.info("Go on List %d", i) self.osc.send_message(ctx.device(), "/hog/playback/go/0", i) def exitListGoto(self, ctx: CommentMacroParser.ListGotoContext): """On exiting a GOTO macro.""" for i in ctx.target().targets: cuelist = str(i) + "." + str(ctx.number().value) - logging.info("Go on List %s", cuelist) + log.info("Go on List %s", cuelist) self.osc.send_message(ctx.device(), "/hog/playback/go/0", list) def exitListHalt(self, ctx: CommentMacroParser.ListHaltContext): """On exiting a Halt macro.""" for i in ctx.target().targets: - logging.info("Halting List %d", i) + log.info("Halting List %d", i) self.osc.send_message(ctx.device(), "/hog/playback/halt/0", i) def exitListRelese(self, ctx: CommentMacroParser.ListReleseContext): """On exiting a Release macro.""" for i in ctx.target().targets: - logging.info("Releasing List %d", i) + log.info("Releasing List %d", i) self.osc.send_message(ctx.device(), "/hog/playback/release/0", i) def exitSceneGo(self, ctx: CommentMacroParser.SceneGoContext): """On exiting a Scene GO macro.""" for i in ctx.target().targets: - logging.info("Go on Scene %d", i) + log.info("Go on Scene %d", i) self.osc.send_message(ctx.device(), "/hog/playback/go/1", i) def exitSceneHalt(self, ctx: CommentMacroParser.SceneHaltContext): """On exiting a Scene Halt macro.""" for i in ctx.target().targets: - logging.info("Halt Scene %d", i) + log.info("Halt Scene %d", i) self.osc.send_message(ctx.device(), "/hog/playback/halt/1", i) def exitSceneRelease(self, ctx: CommentMacroParser.SceneReleaseContext): """On exiting a Scene Release macro.""" for i in ctx.target().targets: - logging.info("Release Scene %d", i) + log.info("Release Scene %d", i) self.osc.send_message(ctx.device(), "/hog/playback/release/1", i) def exitMacroGo(self, ctx: CommentMacroParser.MacroGoContext): """On exiting a Macro GO macro.""" for i in ctx.target().targets: - logging.info("Go on Macro %d", i) + log.info("Go on Macro %d", i) self.osc.send_message(ctx.device(), "/hog/playback/go/2", i) def exitMacroHalt(self, ctx: CommentMacroParser.MacroHaltContext): """On exiting a Macro Halt macro.""" for i in ctx.target().targets: - logging.info("Pause Macro %d", i) + log.info("Pause Macro %d", i) self.osc.send_message(ctx.device(), "/hog/playback/halt/2", i) def exitMacroStop(self, ctx: CommentMacroParser.MacroStopContext): """On exiting a Macro Stop macro.""" for i in ctx.target().targets: - logging.info("Stop Macro %d", i) + log.info("Stop Macro %d", i) self.osc.send_message(ctx.device(), "/hog/playback/release/2", i) def exitPageNext(self, ctx: CommentMacroParser.PageNextContext): """On exiting a Next Page macro.""" - logging.info("Next Page") + log.info("Next Page") self.osc.button_press(ctx.device(), "/hog/hardware/nextpage") def exitPagePrev(self, ctx: CommentMacroParser.PagePrevContext): """On exiting a Previous Page macro.""" - logging.info("Prev Page") + log.info("Prev Page") self.osc.button_press(ctx.device(), "/hog/hardware/backpage") def exitSelectIntensity(self, ctx: CommentMacroParser.SelectIntensityContext): """On exiting a Select Intensity macro.""" if ctx.number().value < 0: - logging.error("Pallet must be greater than 0.") + log.error("Pallet must be greater than 0.") return pallet = str(ctx.number().value) - logging.info("Selecting intensity pallet %s", pallet) + log.info("Selecting intensity pallet %s", pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["intensity"]) self.osc.number_entry(ctx.device(), pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"]) @@ -278,10 +280,10 @@ class OscCommentMacroListener(CommentMacroListener): ctx: CommentMacroParser.SelectPositionContext): """On exiting a Select Intensity macro.""" if ctx.number().value < 0: - logging.error("Pallet must be greater than 0.") + log.error("Pallet must be greater than 0.") return pallet = str(ctx.number().value) - logging.info("Selecting position pallet %s", pallet) + log.info("Selecting position pallet %s", pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["position"]) self.osc.number_entry(ctx.device(), pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"]) @@ -289,10 +291,10 @@ class OscCommentMacroListener(CommentMacroListener): def exitSelectColour(self, ctx: CommentMacroParser.SelectColourContext): """On exiting a Select Intensity macro.""" if ctx.number().value < 0: - logging.error("Pallet must be greater than 0.") + log.error("Pallet must be greater than 0.") return pallet = str(ctx.number().value) - logging.info("Selecting colour pallet %s", pallet) + log.info("Selecting colour pallet %s", pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["colour"]) self.osc.number_entry(ctx.device(), pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"]) @@ -300,10 +302,10 @@ class OscCommentMacroListener(CommentMacroListener): def exitSelectBeam(self, ctx: CommentMacroParser.SelectBeamContext): """On exiting a Select Intensity macro.""" if ctx.number().value < 0: - logging.error("Pallet must be greater than 0.") + log.error("Pallet must be greater than 0.") return pallet = str(ctx.number().value) - logging.info("Selecting beam pallet %s", pallet) + log.info("Selecting beam pallet %s", pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["beam"]) self.osc.number_entry(ctx.device(), pallet) self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"]) diff --git a/bacon/hog4.py b/bacon/hog4.py index c161dc9..b864e03 100644 --- a/bacon/hog4.py +++ b/bacon/hog4.py @@ -10,6 +10,8 @@ __all__ = [ "HogNet", ] +log = logging.getLogger(__name__) + class HogNet: """Class definition of a hognet participant.""" @@ -105,15 +107,15 @@ class HogNet: osc: udp_client = list(self.servers.values())[0] else: if device.nodeType().getText().lower() != 'h': - logging.error("ERROR: Only Hog type devices are supported.") + log.error("ERROR: Only Hog type devices are supported.") return try: osc = self.servers[device.number().value] except KeyError: - logging.error("ERROR: Net# %d not found.", + log.error("ERROR: Net# %d not found.", device.number().value) return try: osc.send(msg) except OSError as exception: - logging.error(exception) + log.error(exception) diff --git a/bacon/script.py b/bacon/script.py index 9467169..c1160e3 100644 --- a/bacon/script.py +++ b/bacon/script.py @@ -20,6 +20,8 @@ __all__ = [ "LISTENER", ] +log = logging.getLogger(__name__) + class SyntaxErrorListener(ErrorListener): """An error listener that raises SyntaxError exceptions.""" @@ -46,10 +48,10 @@ def load_config(file: str = 'server.cfg') -> Dict[int, object]: port = server.getint("port", fallback=7001) net = server.getint("net", fallback=1) # osc clients are added to the dictionary with the net # as the key - logging.info("Adding Hog device at net# %d", str(net)) + log.info("Adding Hog device at net# %d", str(net)) servers[net] = udp_client.SimpleUDPClient(addr, port) except KeyError as exception: - print('Error configuring net#', net, exception) + log.error('Error configuring net#%s: %s', net, exception) continue return servers @@ -79,5 +81,5 @@ def comment(text: str) -> None: # walk the tree WALKER.walk(LISTENER, tree) except SyntaxError as exception: - logging.debug(exception) # antlr internal listener prints the error + log.debug(exception) # antlr internal listener prints the error # # log it to the debug logging anyway diff --git a/bs.py b/bs.py index 0e75231..28f3340 100755 --- a/bs.py +++ b/bs.py @@ -8,10 +8,8 @@ import sys from .bacon import comment, LISTENER, HogNet from .bacon import load_config as loadBsConfig - -# setup logging -LOGGER = logging.getLogger() -LOGGER.setLevel(logging.DEBUG) +logging.basicConfig(level=logging.INFO) +log = logging.getLogger(__name__) LISTENER.osc = HogNet(loadBsConfig('server.cfg'))