===============================
SeqLog
===============================
.. image:: https://img.shields.io/pypi/v/seqlog.svg
:target: https://pypi.python.org/pypi/seqlog
.. image:: https://img.shields.io/travis/tintoy/seqlog.svg
:target: https://travis-ci.org/tintoy/seqlog
.. image:: https://readthedocs.org/projects/seqlog/badge/?version=latest
:target: https://seqlog.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
SeqLog enables logging from Python to `Seq <https://getseq.net/>`_.
It also adds support for logging with named format arguments (via keyword arguments) in the same way ``"{arg1}".format(arg1="foo")`` does.
* Free software: MIT license
* Documentation: https://seqlog.readthedocs.io.
=======
History
=======
Current (0.4.0) - (unreleased yet)
-----------------------------------
* You can enable and disable all of the feature flags at runtime
* Added support for the `CLEF submission format <https://docs.datalust.co/docs/posting-raw-events>`_.
* Fixed a bug wherein configure_from_file would not propagate feature flags
* You can pass bare strings in the exc_info field (although this serves the same purpose as enabling STACK_INFO and using that variable)
* A bugfix wherein `configure_from_file` would not relay it's arguments to `configure_from_dict` in the correct order
0.3.31 (2024-04-27)
-------------------
* Fix incorrect stack-trace in logged exceptions (tintoy/seqlog#69).
0.3.30 (2023-10-28)
-------------------
* Hide errors caused by unavailable Seq server (tintoy/seqlog#61).
0.3.29 (2023-08-24)
-------------------
* Fix type-hint on `set_global_log_properties` (tintoy/seqlog#60).
0.3.28 (2023-08-13)
-------------------
* Improve behaviour of `best_effort_json_encode` so it does not convert JSON to a string (tintoy/seqlog#59).
0.3.27 (2023-08-03)
-------------------
* StructuredLogRecord now converts non-string msg to string (tintoy/seqlog#51).
* Improve logging-error logging behaviour when a failure handler has been registered (tintoy/seqlog#52).
* Improve implementation of `SeqLogHandler._build_event_data()` (tintoy/seqlog#42).
0.3.26 (2023-04-20)
-------------------
* Don't attempt to JSON-encode log event properties that are already strings (tintoy/seqlog#42, tintoy/seqlog#48).
0.3.25 (2023-04-18)
-------------------
* Temporarily revert changes for including `stack_info` (if present) in event payloads sent to Seq (tintoy/seqlog#42).
0.3.24 (2023-04-14)
-------------------
* Include `stack_info` (if present) in event payloads sent to Seq (tintoy/seqlog#42).
0.3.22 (TBA)
------------
* Add support for handling extra log properties via the `extra` argument (tintoy/seqlog#41).
0.3.21 (TBA)
------------
* added checking if None was passed as element of a message
* fixed #13
0.3.20 (2020-10-15)
-------------------
* Added a callable to be called each time log submission fails
0.3.19 (2020-10-15)
-------------------
* Fixed logging messages containing braces
0.3.18 (2020-09-13)
-------------------
* Add an option to specify a callable in global properties
0.3.17 (2020-02-14)
-------------------
* Improve handling of log entries with log-record arguments of type "bytes" (tintoy/seqlog#25).
0.3.16 (2019-11-02)
-------------------
* Pass exception details when posting events to Seq (tintoy/seqlog#22).
0.3.15 (2018-11-20)
-------------------
* Fix deprecated use of `yaml.load` (tintoy/seqlog#20).
0.3.13 (2018-11-20)
-------------------
* Explicitly set ``Content-Type`` header to ``application/json`` when posting events to Seq (tintoy/seqlog#17).
0.3.12 (2018-11-19)
-------------------
* If logging fails to submit an event to Seq then log the response body, if available (tintoy/seqlog#17).
0.3.11 (2018-09-22)
-------------------
* Support custom ``JSONEncoder`` implementations (tintoy/seqlog#7 and tintoy/seqlog#13).
0.3.10 (2018-08-11)
-------------------
* Fix incorrect behaviour when configuring logging from a file (tintoy/seqlog#10).
**Breaking change**: Configuring logging from file or dict will now by default override the default logger class to be ``StructuredLogger`` (this can be reverted to previous behaviour by passing ``use_structured_logger=False``).
0.3.9 (2018-01-09)
------------------
* Add PyYAML as a dependency (tintoy/seqlog#6).
0.3.8 (2018-01-05)
------------------
* Improve documentation for logging configuration from file (#3)
0.3.7 (2018-01-05)
------------------
* Implement and document logging configuration from file (#3)
0.3.4 (2017-11-27)
------------------
* Fix sample code (#2).
0.3.3 (2016-11-18)
------------------
* Use streaming mode when posting to Seq (#1)
0.3.2 (2016-11-18)
------------------
* Updated release notes
0.3.1 (2016-11-18)
------------------
* Further work relating to intermittent "RuntimeError: The content for this response was already consumed" when publishing log entries (#1)
0.3.0 (2016-11-16)
------------------
* Fix for intermittent "RuntimeError: The content for this response was already consumed" when publishing log entries (#1)
0.2.0 (2016-07-09)
------------------
* Support for configuring additional log handlers when calling log_to_seq.
* Support for global log properties (statically-configured properties that are added to all outgoing log entries).
0.0.1 (2016-07-07)
------------------
* First release on PyPI.
0.0.7 (2016-07-09)
------------------
* ``log_to_seq`` now returns the SeqLogHandler to enable forced flushing of log records to Seq.
* Change ``auto_flush_timeout`` to a ``float`` representing seconds (instead of milliseconds).
* Update ``testharness.py`` to actually log to Seq.
You can override the server URL and API key using the ``SEQ_SERVER_URL`` and ``SEQ_API_KEY`` environment variables.
* Update usage information in documentation.
* Python 3 only for now (sorry, but logging in Python 2 doesn't have all the required extensibility points). If the need to support Python 2 becomes great enough then I'll try to find a way.
0.1.0 (2016-07-09)
------------------
* Proper versioning starts today :)
Raw data
{
"_id": null,
"home_page": "https://github.com/tintoy/seqlog",
"name": "seqlog",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "seqlog",
"author": "Adam Friedman",
"author_email": "tintoy@tintoy.io",
"download_url": "https://files.pythonhosted.org/packages/a1/08/adfa151a391c6ffe8a5af1f29a48d77b7701272bade7f538ed5017f426f4/seqlog-0.4.0.tar.gz",
"platform": null,
"description": "===============================\nSeqLog\n===============================\n\n\n.. image:: https://img.shields.io/pypi/v/seqlog.svg\n :target: https://pypi.python.org/pypi/seqlog\n\n.. image:: https://img.shields.io/travis/tintoy/seqlog.svg\n :target: https://travis-ci.org/tintoy/seqlog\n\n.. image:: https://readthedocs.org/projects/seqlog/badge/?version=latest\n :target: https://seqlog.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\nSeqLog enables logging from Python to `Seq <https://getseq.net/>`_.\n\nIt also adds support for logging with named format arguments (via keyword arguments) in the same way ``\"{arg1}\".format(arg1=\"foo\")`` does.\n\n* Free software: MIT license\n* Documentation: https://seqlog.readthedocs.io.\n\n\n=======\nHistory\n=======\n\nCurrent (0.4.0) - (unreleased yet)\n-----------------------------------\n\n* You can enable and disable all of the feature flags at runtime\n* Added support for the `CLEF submission format <https://docs.datalust.co/docs/posting-raw-events>`_.\n* Fixed a bug wherein configure_from_file would not propagate feature flags\n* You can pass bare strings in the exc_info field (although this serves the same purpose as enabling STACK_INFO and using that variable)\n* A bugfix wherein `configure_from_file` would not relay it's arguments to `configure_from_dict` in the correct order\n\n0.3.31 (2024-04-27)\n-------------------\n\n* Fix incorrect stack-trace in logged exceptions (tintoy/seqlog#69).\n\n0.3.30 (2023-10-28)\n-------------------\n\n* Hide errors caused by unavailable Seq server (tintoy/seqlog#61).\n\n0.3.29 (2023-08-24)\n-------------------\n\n* Fix type-hint on `set_global_log_properties` (tintoy/seqlog#60).\n\n0.3.28 (2023-08-13)\n-------------------\n\n* Improve behaviour of `best_effort_json_encode` so it does not convert JSON to a string (tintoy/seqlog#59).\n\n0.3.27 (2023-08-03)\n-------------------\n\n* StructuredLogRecord now converts non-string msg to string (tintoy/seqlog#51).\n* Improve logging-error logging behaviour when a failure handler has been registered (tintoy/seqlog#52).\n* Improve implementation of `SeqLogHandler._build_event_data()` (tintoy/seqlog#42).\n\n0.3.26 (2023-04-20)\n-------------------\n\n* Don't attempt to JSON-encode log event properties that are already strings (tintoy/seqlog#42, tintoy/seqlog#48).\n\n0.3.25 (2023-04-18)\n-------------------\n\n* Temporarily revert changes for including `stack_info` (if present) in event payloads sent to Seq (tintoy/seqlog#42).\n\n0.3.24 (2023-04-14)\n-------------------\n\n* Include `stack_info` (if present) in event payloads sent to Seq (tintoy/seqlog#42).\n\n0.3.22 (TBA)\n------------\n\n* Add support for handling extra log properties via the `extra` argument (tintoy/seqlog#41).\n\n0.3.21 (TBA)\n------------\n\n* added checking if None was passed as element of a message\n* fixed #13\n\n0.3.20 (2020-10-15)\n-------------------\n\n* Added a callable to be called each time log submission fails\n\n0.3.19 (2020-10-15)\n-------------------\n\n* Fixed logging messages containing braces\n\n0.3.18 (2020-09-13)\n-------------------\n\n* Add an option to specify a callable in global properties\n\n0.3.17 (2020-02-14)\n-------------------\n\n* Improve handling of log entries with log-record arguments of type \"bytes\" (tintoy/seqlog#25).\n\n0.3.16 (2019-11-02)\n-------------------\n\n* Pass exception details when posting events to Seq (tintoy/seqlog#22).\n\n0.3.15 (2018-11-20)\n-------------------\n\n* Fix deprecated use of `yaml.load` (tintoy/seqlog#20).\n\n0.3.13 (2018-11-20)\n-------------------\n\n* Explicitly set ``Content-Type`` header to ``application/json`` when posting events to Seq (tintoy/seqlog#17).\n\n0.3.12 (2018-11-19)\n-------------------\n\n* If logging fails to submit an event to Seq then log the response body, if available (tintoy/seqlog#17).\n\n0.3.11 (2018-09-22)\n-------------------\n\n* Support custom ``JSONEncoder`` implementations (tintoy/seqlog#7 and tintoy/seqlog#13).\n\n0.3.10 (2018-08-11)\n-------------------\n\n* Fix incorrect behaviour when configuring logging from a file (tintoy/seqlog#10). \n **Breaking change**: Configuring logging from file or dict will now by default override the default logger class to be ``StructuredLogger`` (this can be reverted to previous behaviour by passing ``use_structured_logger=False``).\n\n0.3.9 (2018-01-09)\n------------------\n\n* Add PyYAML as a dependency (tintoy/seqlog#6).\n\n0.3.8 (2018-01-05)\n------------------\n\n* Improve documentation for logging configuration from file (#3)\n\n0.3.7 (2018-01-05)\n------------------\n\n* Implement and document logging configuration from file (#3)\n\n0.3.4 (2017-11-27)\n------------------\n\n* Fix sample code (#2).\n\n0.3.3 (2016-11-18)\n------------------\n\n* Use streaming mode when posting to Seq (#1)\n\n0.3.2 (2016-11-18)\n------------------\n\n* Updated release notes\n\n0.3.1 (2016-11-18)\n------------------\n\n* Further work relating to intermittent \"RuntimeError: The content for this response was already consumed\" when publishing log entries (#1)\n\n0.3.0 (2016-11-16)\n------------------\n\n* Fix for intermittent \"RuntimeError: The content for this response was already consumed\" when publishing log entries (#1)\n\n0.2.0 (2016-07-09)\n------------------\n\n* Support for configuring additional log handlers when calling log_to_seq.\n* Support for global log properties (statically-configured properties that are added to all outgoing log entries).\n\n0.0.1 (2016-07-07)\n------------------\n\n* First release on PyPI.\n\n0.0.7 (2016-07-09)\n------------------\n\n* ``log_to_seq`` now returns the SeqLogHandler to enable forced flushing of log records to Seq.\n* Change ``auto_flush_timeout`` to a ``float`` representing seconds (instead of milliseconds).\n* Update ``testharness.py`` to actually log to Seq.\n You can override the server URL and API key using the ``SEQ_SERVER_URL`` and ``SEQ_API_KEY`` environment variables.\n* Update usage information in documentation.\n* Python 3 only for now (sorry, but logging in Python 2 doesn't have all the required extensibility points). If the need to support Python 2 becomes great enough then I'll try to find a way.\n\n0.1.0 (2016-07-09)\n------------------\n\n* Proper versioning starts today :)\n\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "SeqLog enables logging from Python to Seq.",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/tintoy/seqlog"
},
"split_keywords": [
"seqlog"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2f2cbe0667f2fac60a9dafdbf9da6a577e3a1941ad0bc4279bdddce49ca62c46",
"md5": "5bc32737c0642f4f3ca9318e7a7f331f",
"sha256": "4c34442238dcfe0257082bb0808c1d0e270e83743b6d2f2cac5fe75f10512f36"
},
"downloads": -1,
"filename": "seqlog-0.4.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "5bc32737c0642f4f3ca9318e7a7f331f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 15540,
"upload_time": "2024-12-08T09:35:39",
"upload_time_iso_8601": "2024-12-08T09:35:39.775224Z",
"url": "https://files.pythonhosted.org/packages/2f/2c/be0667f2fac60a9dafdbf9da6a577e3a1941ad0bc4279bdddce49ca62c46/seqlog-0.4.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a108adfa151a391c6ffe8a5af1f29a48d77b7701272bade7f538ed5017f426f4",
"md5": "b1c75d06e9effb9fd824a1ff23b26e75",
"sha256": "769af0e6629cd04f5e3633f52d2c0ac19cfd40ebe5516819b40ff93c77c40d0b"
},
"downloads": -1,
"filename": "seqlog-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "b1c75d06e9effb9fd824a1ff23b26e75",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 32503,
"upload_time": "2024-12-08T09:35:51",
"upload_time_iso_8601": "2024-12-08T09:35:51.447571Z",
"url": "https://files.pythonhosted.org/packages/a1/08/adfa151a391c6ffe8a5af1f29a48d77b7701272bade7f538ed5017f426f4/seqlog-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-08 09:35:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tintoy",
"github_project": "seqlog",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "python_dateutil",
"specs": [
[
">=",
"2.5.3"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.10.0"
]
]
},
{
"name": "PyYAML",
"specs": [
[
">=",
"3.11"
]
]
}
],
"tox": true,
"lcname": "seqlog"
}