Skip to main content

pyplelogger

Open Source Love Build Status Python 3.3 License: MIT

Maintainability contributions welcome

Simple logger written in python mostly for command line interface tools.

Install

pip install pyplelogger

Usage

Simple usage

This is the atomic usage. Import this and print it out.

from pyplelogger import Logger

log = Logger(__name__).build()
log.info("hogehoge")

INFO 2018-11-26 23:11:15,109 test.py:main in line 4: hogehoge

The default log level is INFO and you have to pass unique name for each handler.

Change default logger level

You can change logger level entire the project.

import logging
from pyplelogger import Logger

Logger.set_default_log_level(logging.WARNING)

log = Logger(__name__).build()
log.info("hogehoge")

#=> Nothing is pritted out

And once you set teh default log level, it is valid in entire project.

The logger levels are defined in logging library.

level number
CRITICAL 50
ERROR 40
WARNING 30
INFO 20
DEBUG 10
NOTSET 0

Let's say you have a script1.py and script2.py.

If you change defaul log level in script1.py like this,

import logging
from pyplelogger import Logger

Logger.set_default_log_level(logging.WARNING)

it is valid in script2.py too.

import logging
from pyplelogger import Logger

log = Logger(__name__).build()
log.info("hogehoge")

#=> Nothing is pritted out

Change logger level

This is similier to changing default log level but this method changes log level for one logger.

Futhermore, the method to change default log level is a class method but, this method is a instance method, so it will only effect the instance.

import logging
from pyplelogger import Logger

log = Logger(__name__).set_log_level(logging.WARNING).build()
log.info("hogehoge")

#=> Nothing is pritted out

Change default format

You can change default format of every instance of Logger by this method. Pass string object describing logging format.

format = '%(levelname)s %(asctime)s %(message)s'
Logger.set_default_format(format)

log = Logger(__name__).build()
log.info("hogehoge")

This will print out this logs.

INFO 2018-11-28 18:11:15,109 hogehoge

Change format

Specify format in string. The default format is '%(levelname)s %(asctime)s %(module)s.py:%(funcName)s in line %(lineno)d: %(message)s'.

from pyplelogger import Logger

log_before = Logger(__name__).build()
log_after = Logger(__name__ + "after").set_format('%(levelname)s %(message)s').build()

log_before.info("before")
log_after.info("after")

Here is the output.

INFO 2018-11-26 23:11:15,109 test.py:main in line 4: before
INFO after

With Argparse

This has good integration with argparse, a library for creating cli tool.

Verbose flag

This is just a simple example of the verbose flag.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--verbose', '-v', action='count')

args = parser.parse_args()

Now you can get number of v flags like

  • -v: 1
  • -vvv: 3

You can convert to log level by Using IncrementalLoggerLevel IntEnum Class.

# 1 is debug level

count = 1

log_level = IncrementalLoggerLevel.convert_logger_level(1)

log = Logger().set_log_level(log_level)
log.DEBUG("hoge")

Then you will see

#=> 
DEBUG 2018-11-26 23:11:15,109 test.py:main in line 3: hoge

The default level of logging is INFO in current version.

level number count
CRITICAL 50 -
ERROR 40 -
WARNING 30 -
INFO 20 0
DEBUG 10 1
NOTSET 0 2

To contribute

We welcome for your contribution.

  1. Fork this project
  2. Run just to install dependencies.
  3. Give us a pull request

Member

  • KeisukeYamashita: Maintainer and creater

Release files for pyplelogger 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for pyplelogger 0.1.8
File Interpreter ABI Platform
pyplelogger-0.1.8-py3-none-any.whl Python 3 none any Details

Release files / pyplelogger-0.1.8-py3-none-any.whl

Download URL pyplelogger-0.1.8-py3-none-any.whl
Size 6.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6bdc16e314ed63c0e6ab6b1d010491cd82d04aa40db0033e8cc794b47ba68eee
BLAKE2b-256 checksum
How to use checksums
024cd6cc5e47f98be6dad1b3cef874aa47b1308fc94466ccfb7bafa9c3cc88cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.0

Release history Release notifications | RSS feed

This release

0.1.8 This release

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page