/
publisher.py
68 lines (51 loc) · 1.61 KB
/
publisher.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/python
# -*- coding: utf-8 -*-
import redis
hostname = 'localhost'
port = 6379
channel = None
redis_instance = None
def connect():
global hostname
global port
global redis_instance
redis_instance = redis.StrictRedis(host=hostname, port=port)
def log(level, message):
global channel
if redis_instance is not None and channel is not None:
c = '{channel}.{level}'.format(channel = channel, level = level)
redis_instance.publish(c, message)
def debug(message):
log('DEBUG', message)
def info(message):
log('INFO', message)
def warning(message):
log('WARNING', message)
def error(message):
log('ERROR', message)
def critical(message):
log('CRITICAL', message)
if __name__ == '__main__':
import argparse
import time
parser = argparse.ArgumentParser(description='Configure a logging publisher.')
parser.add_argument("-H", "--hostname", default='localhost', type=str, help='Set the hostname of the server.')
parser.add_argument("-p", "--port", default=6379, type=int, help='Set the server port.')
parser.add_argument("-c", "--channel",type=str, required=True, help='Channel to publish into.')
args = parser.parse_args()
channel = args.channel
hostname = args.hostname
port = args.port
connect()
for i in range(0,21):
if i%2 == 0 :
info('test' + str(i))
elif i%3 == 0 :
warning('test' + str(i))
elif i%5 == 0:
error('test' + str(i))
elif i%7 == 0:
critical('test' + str(i))
else:
debug('test' + str(i))
time.sleep(1)