This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Alog

Python logging for Humans. Your goto logging module without panic on context swtich.

Warning: No more logger = logging.getLogger(__name__) in your every file.

>>> import alog
>>> alog.info("Hi.")
2016-12-18 20:44:30 INFO  <stdin> Hi.
>>> def test():
...     alog.info("Test 1")
...     alog.error("Test 2")
...
>>> test()
2016-12-18 20:45:19 INFO  <stdin:2> Test 1
2016-12-18 20:45:19 ERROR <stdin:3> Test 2
>>> alog.set_level("ERROR")
>>> test()
2016-12-18 20:45:41 ERROR <stdin:3> Test 2

If you’re new to logging, see Why should you use logging instead of print.

Installation

pip install alog

Features

  • Instant logging with expected defaults.

    You can do logging instantly by reading a small piece of README. Alog comes with useful defaults:

    • A default logger.

    • Logging level: logging.INFO

    • Logging format:

      "%(asctime)s %(levelname)-5.5s [parent_module.current_module:%(lineno)s]%(message)s",
      "%Y-%m-%d %H:%M:%S"
      
  • No more __name__ whenever you start to do logging in a module.

    Alog builds the default module names on the fly.

  • Compatible with default Python logging module.

    Alog is built upon default Python logging module. You can configure it by the same way of default Python logging module when it’s needed.

Comparing alog with Python default logging module

Comparing alog :

In [1]: import alog

In [2]: alog.info("Hello alog!")
2016-11-23 12:20:34 INFO  <IPython> Hello alog!

with logging module:

In [1]: import logging

In [2]: logging.basicConfig(
   ...:     level=logging.INFO,
   ...:     format="%(asctime)s %(levelname)-5.5s "
   ...:            "[%(name)s:%(lineno)s] %(message)s")

In [3]: # In every file you want to do log, otherwise %(names)s won't work.
In [4]: logger = logging.getLogger(__name__)

In [5]: logger.info("Hello log!")
2016-11-23 12:16:30 INFO  [__main__:1] Hello log!

Why should you use logging instead of print

The main goal of logging is to figure out what was going on and to get the insights. print, by default, does only pure string output. No timestamp, no module hint, and no level control, comparing to a pretty logging record.

Lets start with aproject/models/user.py :

class User:
    def __init__(self, user_id, username):
        ...
        print(username)
        ...

What you got output of print :

>>> admin = User(1, "admin")
"admin"

Now use alog :

import alog

class User:
    def __init__(self, user_id, username):
        ...
        alog.info(username)
        ...

What you got output of alog.info :

>>> admin = User(1, "admin")
2016-11-23 11:32:58 INFO  [models.user:6] admin

In the output of hundreds of lines, it helps (a lot).

What if you have used print a log? That’s as easy:

import alog

print = alog.info

... # A lot of print code no needed to change

0.9.11 (2017-04-07)

  • Add alog.getLogger() for handy replacing logging.getLogger.

0.9.10 (2017-03-27)

  • Default logging format asctime to “%Y-%m-%d %H:%M:%S” instead of “%Y-%m-%d,%H:%M:%S.%f”.
  • Update package info and usage (setup.py, README, …).

0.9.9 (2016-08-28)

  • Update to turn_thread_name and turn_process_id.

0.9.8 (2016-08-27)

  • Support showing_thread_name and showing_process_id.
  • Support global reset.

0.9.7 (2016-08-17)

  • Better paths log for None default root name.

0.9.6 (2016-08-16)

  • First public release.
Release History

Release History

0.9.11

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.10

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
alog-0.9.11-py2.py3-none-any.whl (8.1 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Apr 6, 2017
alog-0.9.11.tar.gz (5.4 kB) Copy SHA256 Checksum SHA256 Source Apr 6, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting