Package: colored-glog
Colored Glog for Python===============Credit to the upstream **glog for Python**.Usage-----Simply change **import glog** to **import colored_glog as glog**, and all usagesshould be the same with upstream `glog`:glog for Python===============.. image:: https://travis-ci.org/benley/python-glog.svg?branch=master:target: https://travis-ci.org/benley/python-glogA simple Google-style logging wrapper for Python.This library attempts to greatly simplify logging in Python applications.Nobody wants to spend hours pouring over the PEP 282 logger documentation, andalmost nobody actually needs things like loggers that can be reconfigured overthe network.  We just want to get on with writing our apps.Styled somewhat after the twitter.common.log_ interface, which in turn wasmodeled after Google's internal python logger, which was `never actuallyreleased`_ to the wild, and which in turn was based on the `C++ glog library`_.Core benefits-------------- You and your code don't need to care about how logging works. Unless youwant to, of course.- No more complicated setup boilerplate!- Your apps and scripts will all have a consistent log format, and the samepredictable behaviours.This library configures the root logger, so nearly everything you import thatuses the standard Python logging module will play along nicely.Behaviours-----------  Messages are always written to stderr.-  Lines are prefixed with a google-style log prefix, of the form``E0924 22:19:15.123456 19552 filename.py:87] Log message blah blah``Splitting on spaces, the fields are:1. The first character is the log level, followed by MMDD (month, day)2. HH:MM:SS.microseconds3. Process ID4. basename\_of\_sourcefile.py:linenumber]5. The body of the log message.Example use-----------.. code:: pythonimport glog as loglog.setLevel("INFO")  # Integer levels are also allowed.log.info("It works.")log.warn("Something not ideal")log.error("Something went wrong")log.fatal("AAAAAAAAAAAAAAA!")If your app uses gflags_, it will automatically gain a ``--verbosity`` flag,and you can skip calling ``log.setLevel``.  Just import glog and start logging.Check macros / assert helpers-----------------------------`Like the C++ version of glog`_, python-glog provides a set of check macros[1]_ that help document and enforce invariants.  These provide a detailedmessage indicating what values caused the assertion to fail, along with a stacktrace identifying the code-path that caused the failure, hopefully making iteasier to reproduce the error.  Failed checks raise the FailedCheckException.You may find these more convenient and/or more familiar than standard Pythonasserts, particularly if you are working in a mixed C++ and Python codebase... code:: pythonimport glog as logimport mathdef compute_something(a):log.check_eq(type(a), float) # require floating point typeslog.check_ge(a, 0) # require non-negative valuesvalue = math.sqrt(a)return valueif __name__ == '__main__':compute_something(10)Provided check functions:.. code:: pythoncheck(condition)check_eq(obj1, obj2)check_ne(obj1, obj2)check_le(obj1, obj2)check_ge(obj1, obj2)check_lt(obj1, obj2)check_gt(obj1, obj2)check_notnone(obj1, obj2)Happy logging!.. _twitter.common.log: https://github.com/twitter/commons/tree/master/src/python/twitter/common/log.. _never actually released: https://groups.google.com/d/msg/google-glog/a_JcyJ4p8MQ/Xu-vDPiuCCYJ.. _C++ glog library: https://github.com/google/glog.. _gflags: https://github.com/google/python-gflags.. _Like the C++ version of glog: https://htmlpreview.github.io/?https://github.com/google/glog/master/doc/glog.html#check.. [1] Technically these are functions, not macros.  Python does not havesyntactic macros in the sense that C++ and most lisp-like languages do.