8000 Prevent loggers multiplying across multiple restarts · steeltrack/AbletonOSC@d24a3d9 · GitHub
[go: up one dir, main page]

Skip to content

Commit

Permalink
Prevent loggers multiplying across multiple restarts
Browse files Browse the repository at this point in the history
  • Loading branch information
ideoforms committed Jan 2, 2024
1 parent afeea20 commit d24a3d9
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
2 changes: 2 additions & 0 deletions abletonosc/song.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,13 @@ def song_jump_to_cue_point(song, params: Tuple[Any] = ()):
def stop_beat_listener(params: Tuple[Any] = ()):
try:
self.song.remove_current_song_time_listener(self.current_song_time_changed)
self.logger.info("Removing beat listener")
except:
pass

def start_beat_listener(params: Tuple[Any] = ()):
stop_beat_listener()
self.logger.info("Adding beat listener")
self.song.add_current_song_time_listener(self.current_song_time_changed)

self.osc_server.add_handler("/live/song/start_listen/beat", start_beat_listener)
Expand Down
38 changes: 25 additions & 13 deletions manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,35 @@ def __init__(self, c_instance):
ControlSurface.__init__(self, c_instance)

self.log_level = "info"
self.start_logging()

self.handlers = []
self.show_message("AbletonOSC: Listening for OSC on port %d" % abletonosc.OSC_LISTEN_PORT)

self.osc_server = abletonosc.OSCServer()
self.schedule_message(0, self.tick)

self.start_logging()
self.init_api()

self.show_message("AbletonOSC: Listening for OSC on port %d" % abletonosc.OSC_LISTEN_PORT)
logger.info("Started AbletonOSC on address %s" % str(self.osc_server._local_addr))


def start_logging(self):
"""
Start logging to a local logfile (logs/abletonosc.log),
and relay error messages via OSC.
"""
module_path = os.path.dirname(os.path.realpath(__file__))
log_dir = os.path.join(module_path, "logs")
if not os.path.exists(log_dir):
os.mkdir(log_dir, 0o755)
log_path = os.path.join(log_dir, "abletonosc.log")
self.log_file_handler = logging.FileHandler(log_path)
self.log_file_handler.setLevel(self.log_level.upper())
formatter = logging.Formatter('(%(asctime)s) [%(levelname)s] %(message)s')
self.log_file_handler.setFormatter(formatter)
logger.addHandler(self.log_file_handler)

class LiveOSCErrorLogHandler(logging.StreamHandler):
def emit(handler, record):
message = record.getMessage()
Expand All @@ -37,17 +56,9 @@ def emit(handler, record):
self.live_osc_error_handler.setLevel(logging.ERROR)
logger.addHandler(self.live_osc_error_handler)

def start_logging(self):
module_path = os.path.dirname(os.path.realpath(__file__))
log_dir = os.path.join(module_path, "logs")
if not os.path.exists(log_dir):
os.mkdir(log_dir, 0o755)
log_path = os.path.join(log_dir, "abletonosc.log")
self.log_file_handler = logging.FileHandler(log_path)
self.log_file_handler.setLevel(self.log_level.upper())
formatter = logging.Formatter('(%(asctime)s) [%(levelname)s] %(message)s')
self.log_file_handler.setFormatter(formatter)
logger.addHandler(self.log_file_handler)
def stop_logging(self):
logger.removeHandler(self.log_file_handler)
logger.removeHandler(self.live_osc_error_handler)

def init_api(self):
def test_callback(params):
Expand Down Expand Up @@ -118,6 +129,7 @@ def reload_imports(self):
def disconnect(self):
self.show_message("Disconnecting...")
logger.info("Disconnecting...")
self.stop_logging()
self.osc_server.shutdown()
super().disconnect()

Expand Down

0 comments on commit d24a3d9

Please sign in to comment.
0