===============================
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
=======
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/5f/33/5e1786eb47b33a8ac1e4f599d9f7721a4722913c571b93a25db64b06caea/seqlog-0.3.31.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\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.3.31",
"project_urls": {
"Homepage": "https://github.com/tintoy/seqlog"
},
"split_keywords": [
"seqlog"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "361db130d103aed07839a0c7a35f9043b8108e637d47673fbf0ad171b60cdfb9",
"md5": "4bbcc0ac2bc71b8b6e075b66f760e9e0",
"sha256": "d4609e0302ecb4aa928b51c8cba976962c1c8fa74df2cee1f4a659d72e0fb217"
},
"downloads": -1,
"filename": "seqlog-0.3.31-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4bbcc0ac2bc71b8b6e075b66f760e9e0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 14819,
"upload_time": "2024-04-27T01:50:56",
"upload_time_iso_8601": "2024-04-27T01:50:56.496967Z",
"url": "https://files.pythonhosted.org/packages/36/1d/b130d103aed07839a0c7a35f9043b8108e637d47673fbf0ad171b60cdfb9/seqlog-0.3.31-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5f335e1786eb47b33a8ac1e4f599d9f7721a4722913c571b93a25db64b06caea",
"md5": "841ab58d9d71133c0e544025158179da",
"sha256": "068b6f1b79329e725524af0eaf296ceb385d08db8d781c40f3ddb9f0d5f29c3f"
},
"downloads": -1,
"filename": "seqlog-0.3.31.tar.gz",
"has_sig": false,
"md5_digest": "841ab58d9d71133c0e544025158179da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 31324,
"upload_time": "2024-04-27T01:48:24",
"upload_time_iso_8601": "2024-04-27T01:48:24.083131Z",
"url": "https://files.pythonhosted.org/packages/5f/33/5e1786eb47b33a8ac1e4f599d9f7721a4722913c571b93a25db64b06caea/seqlog-0.3.31.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-27 01:48:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tintoy",
"github_project": "seqlog",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"requirements": [],
"tox": true,
"lcname": "seqlog"
}