# Development Utils

# Colored logger

#### What?
Bunch of patches for python logging:
  - add colors
  - change `stderr` stream references to `stdout`. Weirdly enough `stderr` is the default logging stream for everything, most configurations (including default Django) don't care to change it.

#### Why?
Because you don't want to see everything in red in your IDE.

#### Safe?
Quite safe. The downloaded file is only executed if its SHA256 matches the expected value. Patched logging also behaves very stable, time tested.

#### How?
Add the following piece of code:
  - in django - to your `settings/dev.py` (or wherever your dev settings are)
  - in other projects - anywhere where it will be executed somewhat early (like top of the file)

```python
try:  # Colored logger CaaS. Auto downloaded and verified.
    import os
    import hashlib
    from urllib import request
    cache, url = "/tmp/_colored_logger.py", "https://lab.it.hs-hannover.de/lukyanch/pydevutils/raw/fa4af6555a8eb996e1be158ca12691de9b33ba45/colored_logger.py"
    code = bool(os.path.exists(cache) or request.urlretrieve(url, cache)) and open(cache, "r").read()
    assert hashlib.sha256(code.encode()).hexdigest() == "d4d261a40f95733f9fb184fc4ccb55d007b880cb62c8d6a06824d43eeb1391ac", "unrecognized content in " + cache
    exec(code)
except Exception as e:
    print("No colored logger: {e.__class__.__name__}: {e}".format(e=e))
```