From 1746898cefcb17f58b5cf27b4dad3d28236f1152 Mon Sep 17 00:00:00 2001 From: Lennart Weller Date: Mon, 5 Sep 2016 10:27:21 +0200 Subject: Imported Upstream version 1.3.0+dfsg --- python.d/python_modules/msg.py | 74 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 python.d/python_modules/msg.py (limited to 'python.d/python_modules/msg.py') diff --git a/python.d/python_modules/msg.py b/python.d/python_modules/msg.py new file mode 100644 index 000000000..ecefba0a4 --- /dev/null +++ b/python.d/python_modules/msg.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# Description: logging for netdata python.d modules + +import sys +from time import time, strftime + +DEBUG_FLAG = False +PROGRAM = "" +LOG_COUNTER = 2 +LOG_INTERVAL = 5 +NEXT_CHECK = 0 + +WRITE = sys.stderr.write +FLUSH = sys.stderr.flush + + +def log_msg(msg_type, *args): + """ + Print message on stderr. + :param msg_type: str + """ + global LOG_COUNTER + if not DEBUG_FLAG: + LOG_COUNTER -= 1 + now = time() + if LOG_COUNTER >= 0: + timestamp = strftime('%y-%m-%d %X') + msg = "%s: %s %s: %s" % (timestamp, PROGRAM, str(msg_type), " ".join(args)) + WRITE(msg + "\n") + FLUSH() + + global NEXT_CHECK + if NEXT_CHECK <= now: + NEXT_CHECK = now - (now % LOG_INTERVAL) + LOG_INTERVAL + if LOG_COUNTER < 0: + timestamp = strftime('%y-%m-%d %X') + msg = "%s: Prevented %s log messages from displaying" % (timestamp, str(0 - LOG_COUNTER)) + WRITE(msg + "\n") + FLUSH() + + +def debug(*args): + """ + Print debug message on stderr. + """ + if not DEBUG_FLAG: + return + + log_msg("DEBUG", *args) + + +def error(*args): + """ + Print message on stderr. + """ + log_msg("ERROR", *args) + + +def info(*args): + """ + Print message on stderr. + """ + log_msg("INFO", *args) + + +def fatal(*args): + """ + Print message on stderr and exit. + """ + log_msg("FATAL", *args) + # using sys.stdout causes IOError: Broken Pipe + print('DISABLE') + # sys.stdout.write('DISABLE\n') + sys.exit(1) \ No newline at end of file -- cgit v1.2.3