Skip to main content

Minimalistic Elasticsearch logging handler

Project description

elasticsearch-logging-handler

This is a minimalistic Elasticsearch logging handler for python. This handler uses only url as an authentication method. For more robust authentication consider CMRESHandler.

Package on PyPI - https://pypi.org/project/elasticsearch-logging-handler/

Parameters for ElasticHandler:

Name Type Required Default Description Example
host str True - Url for Elasticsearch cluster. Currently, this handler support only basic authentication through providing user and password in the url. https://user:password@my-cluster.es:9200, https://my-cluster.es:9200
index str True - Name of the Index to write in. preprocessing-logs
level int False 0 (NOTSET) Minimal logging level for the handler. Handler will only process messages with level larger than this parameter. 20, logging.WARNING
batch_size int False 1000 Size of the buffer that stores logs before sending to Elasticsearch. If buffer is full, send batch immediately, without waiting for the flush_period 2000 - send batches of maximum size 2000
flush_period float False 1.0 Period during which handler will accumulate logs into batch before sending it ot the cluster. 10.0 - wait 10 seconds before sending
timezone str False None Timezone for which to transform @timestamp for the record. 'Europe/Amsterdam', 'Australia/Sydney'

ElasticHandler is nonblocking, meaning any logging call e.g. logging.exception will not block calling thread. which is useful in the case of high logging load.

Install

pip install python-elasticsearch-logging

Build

poetry build -f wheel

Uses

logging.ini file

[loggers]
keys = root

[handlers]
keys = file, console, elasticsearch

[formatters]
keys = default

[logger_root]
level = DEBUG
handlers = file, console, elasticsearch

[handler_console]
class = StreamHandler
level = DEBUG
formatter = default
args = (sys.stdout,)

[handler_file]
class = handlers.RotatingFileHandler
level = DEBUG
formatter = default
args = ("service.log","a",10000000,10,"utf-8")
;args = [filename,mode,maxBytes,backupCount,encoding}

[handler_elasticsearch]
class = python_elasticsearch_logging.ElasticHandler
args = ('http://elastic:changeme@localhost:9200','pylogger')
level = DEBUG
formatter = default

[formatter_default]
format = %(asctime)s - %(name)s-%(threadName)-10s-%(levelname)s - %(message)s
datefmt =
class = logging.Formatter

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

python_elasticsearch_logging-2.0.8.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_elasticsearch_logging-2.0.8-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file python_elasticsearch_logging-2.0.8.tar.gz.

File metadata

File hashes

Hashes for python_elasticsearch_logging-2.0.8.tar.gz
Algorithm Hash digest
SHA256 8cea5ec3007ed673336ef90d76d8623d39591266362e84e6495673877f11753c
MD5 8617f87e520fcf15856907935a2ce760
BLAKE2b-256 13b713c21f12ea8aa6a09baf0c6a55154089ac237991454aff609c818cf59fb2

See more details on using hashes here.

File details

Details for the file python_elasticsearch_logging-2.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for python_elasticsearch_logging-2.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 4045ce586d5a2fd31c2da35f553d5c4cfc086e859640fc173b769af0c8d9535c
MD5 b78a7786d8e97ce524744866d22492ec
BLAKE2b-256 2d7d6ab3aa4953a675312fad8d82c529e8ef70a8515cb998fb782400796382d4

See more details on using hashes here.

Supported by

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