summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 07:38:26 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 07:38:26 +0000
commitf3d6e5a890934283508a737d97aa442882873f3a (patch)
tree25db56e10759530f7f64413ceea25394af25d1b1
parent48cef437376283996ebd6264046397acfd4ccb32 (diff)
automatic import of python-flask-logify
-rw-r--r--.gitignore1
-rw-r--r--python-flask-logify.spec227
-rw-r--r--sources1
3 files changed, 229 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..9793983 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..16bb726
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+f3198dc11366150677474e821a0dc8fe Flask-Logify-2.4.5.tar.gz