Make you pass in logfile to follow, try to show when we send data from the overflowqueue. Fix a wording-wrong.

This commit is contained in:
2024-04-16 00:26:05 +02:00
parent dfc5a4616d
commit 99a2a2ec47

View File

@@ -63,7 +63,7 @@ def filefetcher(filename: str, collector_queue, signal_queue, sleep_sec=0.5, see
if line.isspace():
logging.debug('Empty line is empty, thank you for the newline')
else:
logging.debug('Sending line ending at pos ' + str(input_file.tell()))
logging.debug('Parsing line ending at pos ' + str(input_file.tell()))
parse_and_queue_line(line, collector_queue)
line = ''
start_stat = os.stat(filename)
@@ -226,9 +226,11 @@ class RequestHandler(socketserver.BaseRequestHandler):
while True:
try:
if self.overflowqueue.empty != True:
tosend = self.overflowqueue.get_nowait()
if tosend:
self.send(tosend)
while True:
tosend = self.overflowqueue.get_nowait()
if tosend:
logging.debug('Sending ' + str(tosend) + ' from overflowqueue')
self.send(tosend)
except queue.Empty:
pass
try:
@@ -237,8 +239,8 @@ class RequestHandler(socketserver.BaseRequestHandler):
tosend = str(event[0]) + ' ' + event[1]
try:
self.send(tosend)
except BrokenPipeError:
logging.error('Client gone')
except (BrokenPipeError, ConnectionResetError) as error:
logging.error('Client gone: ' + str(error))
self.overflowqueue.put(tosend)
break
try:
@@ -247,6 +249,7 @@ class RequestHandler(socketserver.BaseRequestHandler):
logging.error('Client gone')
self.overflowqueue.put(tosend)
break
start_time = datetime.now()
except queue.Empty:
pass
@@ -362,7 +365,11 @@ def main():
'''Main thingy'''
setproctitle('routerstats-collector main-thread')
logging.debug('Starting as PID ' + str(os.getpid()))
file_to_follow = 'syslogemu.log'
try:
file_to_follow = sys.argv[1]
except IndexError:
logging.error('Need a log file to tail')
sys.exit()
#Just quit early if file is missing..
if os.path.isfile(file_to_follow) is False:
logging.error('Could not find file ' + file_to_follow)