Exemplo n.º 1
0
def mtail( logfiles ):
    for fn, line in multitail( logfiles ):
        msg = '%s: %s' % (fn, line.rstrip('\n'))

        def notify():
            #msg = str(time.time()) + " " + msg
            for sub in subscriptions[:]:
                sub.put(msg)

        gevent.spawn(notify)
Exemplo n.º 2
0
logging.getLogger('').setLevel(logging.INFO)
logging.getLogger('requests').setLevel(logging.ERROR)
logging.getLogger('multitail').setLevel(logging.ERROR)

json_data=open(args.config)
config = json.load(json_data)
json_data.close()

authorization = (config['username'], config['password'])

latest_completed_backup = None

logging.debug("starting up")

for fn, line in multitail([config['log_path']]):
    match = TM_PREFIX.search(line)
    if not match:
        continue
    if TM_STARTED.search(line):
        latest_completed_backup = None
        logging.info("started new backup")
        continue
    if reduce((lambda x,y: x or y), map(lambda x: x in line, TM_ERROR)):
        logging.error("backup error: "+line[match.end():])
        latest_completed_backup = None
        continue
    match = TM_COMPLETE.search(line)
    if match:
        latest_completed_backup = match.group(1)
        continue
Exemplo n.º 3
0
 def _run_multitail(self):
     import multitail
     for fn, line in multitail.multitail(self.targets["files"]):
         severity, msg = self._filter(fn, line.rstrip())
         self._print(severity, msg, fn)
Exemplo n.º 4
0
#!/usr/bin/env python2

import argparse
import multitail

parser = argparse.ArgumentParser()
parser.add_argument('files', type=str, nargs='+')
args = parser.parse_args()

for fn, line in multitail.multitail(args.files):
  print("{}: {}".format(fn,line.strip()))
Exemplo n.º 5
0
example to tail multiple files and append the filename to the beginning
of the output.
"""

import argparse
import multitail
import sys


# http://stackoverflow.com/questions/107705
class Unbuffered(object):
    def __init__(self, stream):
        self.stream = stream

    def write(self, data):
        self.stream.write(data)
        self.stream.flush()

    def __getattr__(self, attr):
        return getattr(self.stream, attr)


sys.stdout = Unbuffered(sys.stdout)

parser = argparse.ArgumentParser()
parser.add_argument('files', type=str, nargs='+')
args = parser.parse_args()

for fn, line in multitail.multitail(args.files):
    print("{}: {}".format(fn, line.strip()))