Move remote log stuff back into remote module

This commit is contained in:
Anders Ingemann 2014-11-30 15:58:05 +01:00
parent ece717a79f
commit bc8967529d
4 changed files with 34 additions and 33 deletions

View file

@ -102,34 +102,3 @@ class FileFormatter(SourceFormatter):
"""
def format(self, record):
return super(FileFormatter, self).format(record)
class LogForwarder(logging.Handler):
def __init__(self, level=logging.NOTSET):
self.server = None
super(LogForwarder, self).__init__(level)
def set_server(self, server):
self.server = server
def emit(self, record):
if self.server is not None:
if record.exc_info is not None:
import traceback
exc_type, exc_value, exc_traceback = record.exc_info
record.exc_info = traceback.print_exception(exc_type, exc_value, exc_traceback)
# TODO: Use serpent instead
import pickle
self.server.handle(pickle.dumps(record))
class LogServer(object):
def handle(self, pickled_record):
import pickle
record = pickle.loads(pickled_record)
log = logging.getLogger()
record.extra = getattr(record, 'extra', {})
record.extra['source'] = 'remote'
log.handle(record)

32
bootstrapvz/remote/log.py Normal file
View file

@ -0,0 +1,32 @@
import logging
class LogForwarder(logging.Handler):
def __init__(self, level=logging.NOTSET):
self.server = None
super(LogForwarder, self).__init__(level)
def set_server(self, server):
self.server = server
def emit(self, record):
if self.server is not None:
if record.exc_info is not None:
import traceback
exc_type, exc_value, exc_traceback = record.exc_info
record.exc_info = traceback.print_exception(exc_type, exc_value, exc_traceback)
# TODO: Use serpent instead
import pickle
self.server.handle(pickle.dumps(record))
class LogServer(object):
def handle(self, pickled_record):
import pickle
record = pickle.loads(pickled_record)
log = logging.getLogger()
record.extra = getattr(record, 'extra', {})
record.extra['source'] = 'remote'
log.handle(record)

View file

@ -82,7 +82,7 @@ def run(manifest, build_server, debug=False, dry_run=False):
from callback import CallbackServer
callback_server = CallbackServer(listen_port=build_server.local_callback_port,
remote_port=build_server.remote_callback_port)
from bootstrapvz.base.log import LogServer
from log import LogServer
log_server = LogServer()
try:
# Start the callback server (in a background thread)

View file

@ -15,7 +15,7 @@ def main():
def setup_logging():
from bootstrapvz.base.log import LogForwarder
from log import LogForwarder
log_forwarder = LogForwarder()
root = logging.getLogger()
root.addHandler(log_forwarder)