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.
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 = elasticsearch_logging_handler.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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file python_elasticsearch_logging-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: python_elasticsearch_logging-2.0.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff363e5ce153684d62866fce94e1ca6511122ac5b06898f91d54df94963d5cfb |
|
MD5 | e3577e027206478d3d5943907da60639 |
|
BLAKE2b-256 | ce077678d5ab88310983f096015735dedaf701818d01e08a8bc3d9d664f429ef |