diff --git a/example/example.py b/example/example.py index 6a37574..374c7b9 100644 --- a/example/example.py +++ b/example/example.py @@ -8,4 +8,4 @@ log.error("something went wrong.") log.die("bailing out") # exits -print "no soup for you." +print("no soup for you.") diff --git a/sanelogging/__init__.py b/sanelogging/__init__.py index 57a83a6..3fd2e61 100644 --- a/sanelogging/__init__.py +++ b/sanelogging/__init__.py @@ -2,7 +2,11 @@ #234567891123456789212345678931234567894123456789512345678961234567897123456789 # encoding: utf-8 + +from pytz import reference +import time import colorlog +import datetime import logging import os import sys @@ -16,19 +20,34 @@ ch = logging.StreamHandler() # defaults to sys.stderr log.addHandler(ch) -formatstr = '%(asctime)s [%(levelname)-.4s] %(message)s' + +formatstr = '%(asctime)s.%(msecs)03d [%(levelname)-.4s] %(message)s' +datefmt = '%Y-%m-%dT%H:%M:%S' + +localtime = reference.LocalTimezone() +if localtime.tzname(datetime.datetime.now()) == 'UTC': + # UTC time, just append Z + formatstr = '%(asctime)s.%(msecs)03dZ [%(levelname)-.4s] %(message)s' +else: + # not UTC, append offset of local system time + minute = (time.localtime().tm_gmtoff / 60) % 60 + hour = ((time.localtime().tm_gmtoff / 60) - minute) / 60 + utcoffset = "%.2d%.2d" %(hour, minute) + if utcoffset[0] != '-': + utcoffset = '+' + utcoffset + formatstr = '%(asctime)s.%(msecs)03d' + utcoffset + ' [%(levelname)-.4s] %(message)s' + colorFormatter = colorlog.ColoredFormatter( - '%(log_color)s' + formatstr + fmt='%(log_color)s' + formatstr, datefmt=datefmt ) formatter = logging.Formatter( - formatstr + fmt=formatstr, + datefmt=datefmt ) - log.notice = log.info - if sys.stdout.isatty(): ch.setFormatter(colorFormatter) else: @@ -39,7 +58,7 @@ if os.environ.get('LOG_TO_SYSLOG',False): # default to UDP if no socket found address = ('localhost', 514) - + from logging.handlers import SysLogHandler locations = [ diff --git a/setup.py b/setup.py index 57ddef2..1898b4f 100644 --- a/setup.py +++ b/setup.py @@ -11,5 +11,7 @@ setup( description='Python logging for humans', install_requires=[ "colorlog", + "pytz", + "datetime" ], )