Git Product home page Git Product logo

logpy's Introduction

Alpha Griffin Python Logger

Logging system for Python.

.. toctree::
   API Documentation <api/modules>

These common log levels are defined:

  1. FATAL - logic violation, major flaw, or potentially halting error
  2. ERROR - these generally indicate a problem
  3. WARN - warnings but not necessarily a problem
  4. INFO - informational messages
  5. DEBUG - verbose and often extraneous, but useful for debugging purposes

Install with pip directly from this repository:

pip install git+https://github.com/alphagriffin/logpy

Win10 x64: Working Ubuntu: Working

Both a Makefile and setup.py are provided and used. The setup.py uses Python's standard setuptools package and you can call this script directly to do the basic Python tasks such as creating a wheel, etc.

The most common project build tasks are all provided in the Makefile. To see the full list of project targets:

make help

Sphinx is used to generate html documentation and man pages. All documentation (html as well as man pages) may be regenerated at any time with:

make docs

Every so often, when new source class files are created or moved, you will want to regenerate the API documentation templates. These templates may be modified by hand so this task does not overwrite existing files; you'll need to remove any existing files from api/ that you want recreated. Then generate the API templates and re-build all documentation as follows:

make apidoc
make docs

There's not much to do for a simple Python project but your build may want to do more. In any case you can call make python if you need to (in pyproject this target simply delegates to ./setup.py build).

Build all the common tasks (including documentation) as follows:

make all

To clean up all the common generated files from your project folder:

make clean

To install this project to the local system:

make install

Note that you may need superuser permissions to perform the above step.

To make a binary distribution:

make bdist

(in pyproject, the above step simply delegates to ./setup.py bdist_wheel)

The distributions will collect in the dist/ directory.

You can control the logging level with one of the 5 numerical levels defined above. A value of None or 0 will disable logging. Use one of the 5 log print functions (debug(), info(), warn(), error(), fatal()) in places where you might otherwise have used print().

Example usage of the logging system in a Python script:

import ag.logging as log

# set global logging level
log.set(log.WARN) # see all WARN and higher (WARN, ERROR, FATAL)

# some log printing examples
log.warn('this warning message is shown at level 3')
log.debug('this debug message is NOT shown at level 3')

If you have not installed the project system-wide or you have some changes to try, you must add the project folder to Python's search path first:

import sys, os
sys.path.insert(0, os.path.abspath('/path/to/logpy'))
import ag.logging

logpy's People

Contributors

lannocc avatar ruckusist avatar

Watchers

 avatar  avatar  avatar

Forkers

gregariomansa

logpy's Issues

naming error in setup.

log.FATAL(e)
TypeError: 'int' object is not callable

I think log.FATAL is now used in the beginning setup for log.set(log.FATAL)... but i need it as an Error for fatal call backs...

previous fix recommendation should take.

log.debug(thing)
File "/usr/lib64/python3.6/site-packages/logging-0.1.0-py3.6.egg/ag/logging/init.py", line 112, in debug
_log('~', 'D', msg, *argv, **kwargs);
File "/usr/lib64/python3.6/site-packages/logging-0.1.0-py3.6.egg/ag/logging/init.py", line 119, in _log
lines = msg.split('\n')
AttributeError: 'Tensor' object has no attribute 'split'

the split method cannot be used on all log calls... need a try: except

File "/usr/lib64/python3.6/site-packages/logging-0.1.0-py3.6.egg/ag/logging/init.py", line 119, in _log
lines = msg.split('\n')
AttributeError: 'generator' object has no attribute 'split'

fix:
try:
lines = msg.split("/n")
except:
try:
msg = "\n".join([this for this in msg])
lines = msg.split("/n")
except:
lines = msg
log.warn("failed to split lines")

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.