Skip to content

Instantly share code, notes, and snippets.

@Attumm
Last active August 28, 2018 23:15
Show Gist options
  • Save Attumm/facf8451bef19123f93a70a6e3c2be35 to your computer and use it in GitHub Desktop.
Save Attumm/facf8451bef19123f93a70a6e3c2be35 to your computer and use it in GitHub Desktop.
import sys
from syslog import syslog as syslog_func
from datetime import datetime
def stdout_func(msg):
sys.stdout.write(msg + '\n')
class Logs:
def __init__(self, namespace="Logs", syslog=True, stdout=False):
self.handlers = self._init_handlers_setup(syslog, stdout)
self.namespace = namespace
def _init_handlers_setup(self, syslog, stdout):
mapping_handler = {
"syslog": syslog_func,
"stdout": stdout_func,
}
active_handler = {
"syslog": syslog,
"stdout": stdout,
}
return [mapping_handler[func_name] for func_name, active in active_handler.items() if active]
def log(self, msg, loglevel=1):
formatted_msg = self.create_msg(msg, loglevel)
for handler in self.handlers:
handler(formatted_msg)
def debug(self, msg):
self.log(msg, 10)
def info(self, msg):
self.log(msg, 20)
def warning(self, msg):
self.log(msg, 30)
def error(self, msg):
self.log(msg, 40)
def fatal(self, msg):
self.log(msg, 50)
def create_msg(self, msg, loglevel):
return "{}, {}, {}".format(self.namespace, msg, loglevel)
logger = Logs(stdout=False, syslog=True)
logger.log("hi")
logger.log("logging stuff")
logger.log("all is well")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment