diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-31 07:38:26 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 07:38:26 +0000 |
commit | f3d6e5a890934283508a737d97aa442882873f3a (patch) | |
tree | 25db56e10759530f7f64413ceea25394af25d1b1 | |
parent | 48cef437376283996ebd6264046397acfd4ccb32 (diff) |
automatic import of python-flask-logify
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-flask-logify.spec | 227 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 229 insertions, 0 deletions
@@ -0,0 +1 @@ +/Flask-Logify-2.4.5.tar.gz diff --git a/python-flask-logify.spec b/python-flask-logify.spec new file mode 100644 index 0000000..c061804 --- /dev/null +++ b/python-flask-logify.spec @@ -0,0 +1,227 @@ +%global _empty_manifest_terminate_build 0 +Name: python-Flask-Logify +Version: 2.4.5 +Release: 1 +Summary: Logging configuration for flask application +License: MIT +URL: https://github.com/cs91chris/flask_logify +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/99/16/96e889fd2d907f62d3e208c648f113c3c8448648cd1e05a50c1367b9a299/Flask-Logify-2.4.5.tar.gz +BuildArch: noarch + +Requires: python3-Flask +Requires: python3-PyYAML + +%description +|version| +Advanced Logging configuration for flask application based on yaml or json file. +See `logging.config <https://docs.python.org/3/library/logging.config.html>`__ +NOTE: If you want to use ``flask_logify.handlers.FlaskSysLogHandler`` +you must init this extension with an app context. +The dump of request or response are made by builders, there are two concrete implementations: + 1. ``LogTextBuilder``: message as plain text (configurable). + 2. ``LogJSONBuilder``: message as json format. +You can create your own builder by extending class ``LogBuilder``. In order to get the correct remote address +you can override ``LogBuilder.get_remote_address`` method or you can inject a function in ``LogBuilder`` constructor. +See example usage in `example/test.py <./flask_logify/example/test.py>`__. +``FlaskLogging`` as a decorator attribute with which you can disable log messages for a specific route, +passing a logging filter to it. For example you want disable log for health check endpoint. +See `example/text.py <./flask_logify/example/test.py>`__. +Quickstart +~~~~~~~~~~ +Install ``flask_logify`` using ``pip``: + $ pip install Flask-Logify +Example usage +^^^^^^^^^^^^^ +An example of log file configuration is under example folder. +Only yaml or json format are supported. + from flask import Flask + from flask_logify import FlaskLogging + app = Flask(__name__) + app.config['LOG_FILE_CONF'] = 'log.yaml' + app.config['LOG_LOGGER_NAME'] = 'flask-development' + logging = FlaskLogging() + with app.app_context(): + logging.init_app(app) + app.run() +Go to http://127.0.0.1:5000/ and see log messages like configured +Configuration +^^^^^^^^^^^^^ +Base configuration keys: + 1. ``LOGGING``: *(default: None)* dict logging configuration + 2. ``LOG_FILE_CONF``: *(default: None)* absolute path of configuration file (has priority on LOGGING) + 3. ``LOG_APP_NAME``: *(default: flask)* the ident of the record used by syslog + 4. ``LOG_LOGGER_NAME``: *(default: flask-development)* usually is {LOG_APP_NAME}-{FLASK_ENV} + 5. ``REQUEST_ID_HEADER``: *(default: X-Request-ID)* request id header key + 6. ``LOG_BUILDER``: *(default: text)* log builder implementation (text, json) +Text and JSON builder configuration keys: + 1. ``LOG_REQ_HEADERS``: *(default: [])* request headers to dump always + 2. ``LOG_RESP_HEADERS``: *(default: [])* response headers to dump always + 3. ``LOG_REQ_SKIP_DUMP``: *(default: not DEBUG)* if true dump of request body and headers are skipped + 4. ``LOG_RESP_SKIP_DUMP``: *(default: DEBUG)* if true dump of response body and headers are skipped +Text builder only: + 1. ``LOG_RESP_FORMAT``: *(default: "OUTGOING RESPONSE for {address} at {path}: {level} STATUS {status}{headers}{body}")* + log message format for response + 2. ``LOG_REQ_FORMAT``: *(default: "INCOMING REQUEST: {address} {method} {scheme} {path}{headers}{body}")* + log message format for request +License MIT + +%package -n python3-Flask-Logify +Summary: Logging configuration for flask application +Provides: python-Flask-Logify +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-Flask-Logify +|version| +Advanced Logging configuration for flask application based on yaml or json file. +See `logging.config <https://docs.python.org/3/library/logging.config.html>`__ +NOTE: If you want to use ``flask_logify.handlers.FlaskSysLogHandler`` +you must init this extension with an app context. +The dump of request or response are made by builders, there are two concrete implementations: + 1. ``LogTextBuilder``: message as plain text (configurable). + 2. ``LogJSONBuilder``: message as json format. +You can create your own builder by extending class ``LogBuilder``. In order to get the correct remote address +you can override ``LogBuilder.get_remote_address`` method or you can inject a function in ``LogBuilder`` constructor. +See example usage in `example/test.py <./flask_logify/example/test.py>`__. +``FlaskLogging`` as a decorator attribute with which you can disable log messages for a specific route, +passing a logging filter to it. For example you want disable log for health check endpoint. +See `example/text.py <./flask_logify/example/test.py>`__. +Quickstart +~~~~~~~~~~ +Install ``flask_logify`` using ``pip``: + $ pip install Flask-Logify +Example usage +^^^^^^^^^^^^^ +An example of log file configuration is under example folder. +Only yaml or json format are supported. + from flask import Flask + from flask_logify import FlaskLogging + app = Flask(__name__) + app.config['LOG_FILE_CONF'] = 'log.yaml' + app.config['LOG_LOGGER_NAME'] = 'flask-development' + logging = FlaskLogging() + with app.app_context(): + logging.init_app(app) + app.run() +Go to http://127.0.0.1:5000/ and see log messages like configured +Configuration +^^^^^^^^^^^^^ +Base configuration keys: + 1. ``LOGGING``: *(default: None)* dict logging configuration + 2. ``LOG_FILE_CONF``: *(default: None)* absolute path of configuration file (has priority on LOGGING) + 3. ``LOG_APP_NAME``: *(default: flask)* the ident of the record used by syslog + 4. ``LOG_LOGGER_NAME``: *(default: flask-development)* usually is {LOG_APP_NAME}-{FLASK_ENV} + 5. ``REQUEST_ID_HEADER``: *(default: X-Request-ID)* request id header key + 6. ``LOG_BUILDER``: *(default: text)* log builder implementation (text, json) +Text and JSON builder configuration keys: + 1. ``LOG_REQ_HEADERS``: *(default: [])* request headers to dump always + 2. ``LOG_RESP_HEADERS``: *(default: [])* response headers to dump always + 3. ``LOG_REQ_SKIP_DUMP``: *(default: not DEBUG)* if true dump of request body and headers are skipped + 4. ``LOG_RESP_SKIP_DUMP``: *(default: DEBUG)* if true dump of response body and headers are skipped +Text builder only: + 1. ``LOG_RESP_FORMAT``: *(default: "OUTGOING RESPONSE for {address} at {path}: {level} STATUS {status}{headers}{body}")* + log message format for response + 2. ``LOG_REQ_FORMAT``: *(default: "INCOMING REQUEST: {address} {method} {scheme} {path}{headers}{body}")* + log message format for request +License MIT + +%package help +Summary: Development documents and examples for Flask-Logify +Provides: python3-Flask-Logify-doc +%description help +|version| +Advanced Logging configuration for flask application based on yaml or json file. +See `logging.config <https://docs.python.org/3/library/logging.config.html>`__ +NOTE: If you want to use ``flask_logify.handlers.FlaskSysLogHandler`` +you must init this extension with an app context. +The dump of request or response are made by builders, there are two concrete implementations: + 1. ``LogTextBuilder``: message as plain text (configurable). + 2. ``LogJSONBuilder``: message as json format. +You can create your own builder by extending class ``LogBuilder``. In order to get the correct remote address +you can override ``LogBuilder.get_remote_address`` method or you can inject a function in ``LogBuilder`` constructor. +See example usage in `example/test.py <./flask_logify/example/test.py>`__. +``FlaskLogging`` as a decorator attribute with which you can disable log messages for a specific route, +passing a logging filter to it. For example you want disable log for health check endpoint. +See `example/text.py <./flask_logify/example/test.py>`__. +Quickstart +~~~~~~~~~~ +Install ``flask_logify`` using ``pip``: + $ pip install Flask-Logify +Example usage +^^^^^^^^^^^^^ +An example of log file configuration is under example folder. +Only yaml or json format are supported. + from flask import Flask + from flask_logify import FlaskLogging + app = Flask(__name__) + app.config['LOG_FILE_CONF'] = 'log.yaml' + app.config['LOG_LOGGER_NAME'] = 'flask-development' + logging = FlaskLogging() + with app.app_context(): + logging.init_app(app) + app.run() +Go to http://127.0.0.1:5000/ and see log messages like configured +Configuration +^^^^^^^^^^^^^ +Base configuration keys: + 1. ``LOGGING``: *(default: None)* dict logging configuration + 2. ``LOG_FILE_CONF``: *(default: None)* absolute path of configuration file (has priority on LOGGING) + 3. ``LOG_APP_NAME``: *(default: flask)* the ident of the record used by syslog + 4. ``LOG_LOGGER_NAME``: *(default: flask-development)* usually is {LOG_APP_NAME}-{FLASK_ENV} + 5. ``REQUEST_ID_HEADER``: *(default: X-Request-ID)* request id header key + 6. ``LOG_BUILDER``: *(default: text)* log builder implementation (text, json) +Text and JSON builder configuration keys: + 1. ``LOG_REQ_HEADERS``: *(default: [])* request headers to dump always + 2. ``LOG_RESP_HEADERS``: *(default: [])* response headers to dump always + 3. ``LOG_REQ_SKIP_DUMP``: *(default: not DEBUG)* if true dump of request body and headers are skipped + 4. ``LOG_RESP_SKIP_DUMP``: *(default: DEBUG)* if true dump of response body and headers are skipped +Text builder only: + 1. ``LOG_RESP_FORMAT``: *(default: "OUTGOING RESPONSE for {address} at {path}: {level} STATUS {status}{headers}{body}")* + log message format for response + 2. ``LOG_REQ_FORMAT``: *(default: "INCOMING REQUEST: {address} {method} {scheme} {path}{headers}{body}")* + log message format for request +License MIT + +%prep +%autosetup -n Flask-Logify-2.4.5 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-Flask-Logify -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 2.4.5-1 +- Package Spec generated @@ -0,0 +1 @@ +f3198dc11366150677474e821a0dc8fe Flask-Logify-2.4.5.tar.gz |