Skip to main content

Loguru extension for log in GELF payload format.

Project description

PyPI version Codacy Badge License

gelfguru

A Loguru extension for handling log messages and adapt to GELF payload pattern, without modifying built-in Loguru methods call. This library was created especially for applications running in Docker environment with GELF Logging Driver.

Features:

  • Dont modify call methods Loguru, like logger.trace, logger.info, logger.info etc;
  • Create new methods for logger instance, with all RFC-5424 Severity level;
  • Associates RFC-5424 Severity Levels Numerical Codes in GELF field.
  • Filter logs by environment variable GELFGURU_LEVEL.

Installation

pip3.7 install gelfguru

How to Use

If you configure Loguru instance with gelfguru, you only need to execute:

from loguru import logger
from gelfguru import configure_gelf_output

configure_gelf_output()

logger.trace('loguru trace calls equals gelfguru debug calls')
logger.info('Numeric level RFC-5424')
logger.emergency('Implemented RFC-5424 Syslog Severity Logs')

Log Levels

GELF log level is equal to the standard syslog levels.

gelfluru Syslog Severity Numerical Code Description
emergency Emergency 0 System is unusable. A panic condition
alert Alert 1 Action must be taken immediately. A condition that should be corrected immediately, such as a corrupted system database.[
critical Critical 2 Critical conditions. Hard device errors
error Error 3 Error conditions.
warning Warning 4 Warning conditions
success, notice Notice 5 Normal but significant condition. Conditions that are not error conditions, but that may require special handling
info Informational 6 Informational messages
debug, trace Debug 7 Debug-level messages. Messages that contain information normally of use only when debugging a program.

Example:

from loguru import logger                                                                             
from gelfguru import configure_gelf_output                                                            

configure_gelf_output()                                                                               

logger.trace('loguru trace calls equals gelfguru debug calls')                                        
# {
#   "version": "1.1",
#   "short_message": "trace\n",
#   "full_message": "trace\n",
#   "timestamp": 1593137655.309429,
#   "level": 7,
#   "line": 1,
#   "_file": "<ipython-input-4-698cb139534b>",
#   "_context": {
#     "module": "__main__:<module>:1",
#     "process": "MainProcess",
#     "thread": "MainThread"
#   }
# }

logger.info('Change numeric level value, in the case, is used RFC-5424 numeric level value')          
# {
#   "version": "1.1",
#   "short_message": "Change numeric level value, in the case, is used RFC-5424",
#   "full_message": "Change numeric level value, in the case, is used RFC-5424 numeric level value",
#   "timestamp": 1593137655.42884,
#   "level": 6,
#   "line": 1,
#   "_file": "<ipython-input-5-d527b5b194dc>",
#   "_context": {
#     "module": "__main__:<module>:1",
#     "process": "MainProcess",
#     "thread": "MainThread"
#   }
# }

logger.emergency('Implemented RFC-5424 Syslog Severity Logs')                                         
# {
#   "version": "1.1",
#   "short_message": "Implemented RFC-5424 Syslog Severity Logs",
#   "full_message": "Implemented RFC-5424 Syslog Severity Logs",
#   "timestamp": 1593137657.236526,
#   "level": 0,
#   "line": 1,
#   "_file": "<ipython-input-6-5c45ca4c1de6>",
#   "_context": {
#     "module": "__main__:<module>:1",
#     "process": "MainProcess",
#     "thread": "MainThread"
#   }
# }

logger.bind(new_field="i am additional filed gelf").error('iste natus error sit')
# {
#   "version": "1.1",
#   "short_message": "iste natus error sit",
#   "full_message": "iste natus error sit",
#   "timestamp": 1593138435.430722,
#   "level": 3,
#   "line": 18,
#   "_file": "/home/augustoliks/github/loguru-gelf-extension/tests/test_loguru_gelf_extension.py",
#   "_context": {
#     "module": "test_loguru_gelf_extension:test_loguru_calls:18",
#     "process": "MainProcess",
#     "thread": "MainThread"
#   },
#   "_new_field": "i am additional filed gelf"
# }

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gelfguru-0.1.3.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

gelfguru-0.1.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file gelfguru-0.1.3.tar.gz.

File metadata

  • Download URL: gelfguru-0.1.3.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.7 Linux/5.6.15-200.fc31.x86_64

File hashes

Hashes for gelfguru-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7173beaf862ce0d5bfc94cdf5906fe616b10ed4c7a7d2ab08802fb5015e9b38d
MD5 0a4a8bf847a177954f58614802ffa07e
BLAKE2b-256 0215ec49aa818560759e05866630f749601fa379564150054cc5f32528bc64a4

See more details on using hashes here.

File details

Details for the file gelfguru-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: gelfguru-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.7 Linux/5.6.15-200.fc31.x86_64

File hashes

Hashes for gelfguru-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f9636dbfbac083eede6011164a0ff4ddde8cc20555742f36d7ef951f25d81568
MD5 e6388a3d4a91f7ba04698320b9799ffa
BLAKE2b-256 282936d571eec2ccaac1a5e3c49b07754815e04d4ecb0276e8fc281405911901

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page