def unwatch(self, file, fid): # file no longer exists; if it has been renamed # try to read it for the last time in case the # log rotator has written something in it. lines = self.readfile(file) utils.log("[{0}] - un-watching logfile {1}".format(fid, file.name)) del self.files_map[fid] if lines: self.callback(file.name, lines)
def __init__(self, configfile): utils.log('processing config file %s' % configfile) defaults = { 'add_field': '', 'debug': '', 'discover_interval': '15', 'exclude': '', 'format': '', 'message_format': '', 'sincedb_path': '', 'sincedb_write_interval': '15', 'stat_interval': '1', 'tags': '', 'type': '' } self._configfile = configfile self._config = ConfigParser.ConfigParser(defaults) self._sanitize() self._data = self._parse()
def run_worker(options): utils.log("Logging using the {0} transport".format(options.transport)) if options.transport == 'redis': import beaver.redis_transport transport = beaver.redis_transport.RedisTransport() elif options.transport == 'stdout': import beaver.stdout_transport transport = beaver.stdout_transport.StdoutTransport() elif options.transport == 'zmq': import beaver.zmq_transport transport = beaver.zmq_transport.ZmqTransport() elif options.transport == 'rabbitmq': import beaver.rabbitmq_transport transport = beaver.rabbitmq_transport.RabbitmqTransport() else: raise Exception('Invalid transport {0}'.format(options.transport)) try: utils.log("Starting worker...") l = Worker(options, transport.callback) utils.log("Working...") l.loop() except KeyboardInterrupt: utils.log("Shutting down. Please wait.") transport.interrupt() utils.log("Shutdown complete.") sys.exit(0) except Exception, e: utils.log("Unhandled Exception: {0}".format(str(e))) transport.unhandled() sys.exit(1)
self.watch(fname) def readfile(self, file): lines = file.readlines() if lines: self.callback(file.name, lines) def watch(self, fname): try: file = open(fname, "r") fid = self.get_file_id(os.stat(fname)) except EnvironmentError, err: if err.errno != errno.ENOENT: raise else: utils.log("[{0}] - watching logfile {1}".format(fid, fname)) self.files_map[fid] = file def unwatch(self, file, fid): # file no longer exists; if it has been renamed # try to read it for the last time in case the # log rotator has written something in it. lines = self.readfile(file) utils.log("[{0}] - un-watching logfile {1}".format(fid, file.name)) del self.files_map[fid] if lines: self.callback(file.name, lines) @staticmethod def get_file_id(st): return "%xg%x" % (st.st_dev, st.st_ino)
def run_worker(options, fileconfig): utils.log("Logging using the {0} transport".format(options.transport)) if options.transport == 'redis': import beaver.redis_transport transport = beaver.redis_transport.RedisTransport(fileconfig) elif options.transport == 'stdout': import beaver.stdout_transport transport = beaver.stdout_transport.StdoutTransport(fileconfig) elif options.transport == 'zmq': import beaver.zmq_transport transport = beaver.zmq_transport.ZmqTransport(fileconfig) elif options.transport == 'rabbitmq': import beaver.rabbitmq_transport transport = beaver.rabbitmq_transport.RabbitmqTransport(fileconfig) else: raise Exception('Invalid transport {0}'.format(options.transport)) try: utils.log("Starting worker...") l = Worker(options, transport.callback) utils.log("Working...") l.loop() except KeyboardInterrupt: utils.log("Shutting down. Please wait.") transport.interrupt() utils.log("Shutdown complete.") sys.exit(0) except Exception, e: utils.log("Unhandled Exception: {0}".format(str(e))) print("Unhandled Exception: {0}".format(str(e))) transport.unhandled() sys.exit(1)