diff options
Diffstat (limited to 'python-pino.spec')
-rw-r--r-- | python-pino.spec | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/python-pino.spec b/python-pino.spec new file mode 100644 index 0000000..0e32c57 --- /dev/null +++ b/python-pino.spec @@ -0,0 +1,211 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pino +Version: 0.6.0 +Release: 1 +Summary: Python json logger inspired by pino.js +License: MIT +URL: https://github.com/CoorpAcademy/pino.py +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/88/7c/68bc956e96fdc1e76a3bc0b89deb0ab3fcb2ced2af76fd588ed6ac48e4bb/pino-0.6.0.tar.gz +BuildArch: noarch + +Requires: python3-style + +%description +> **Json natural logger for python** inspired by [pino.js](https://github.com/pinojs/pino) :evergreen_tree: +[](https://pypi.org/project/pino/) +[](https://pypi.python.org/pypi/pino) +[](https://travis-ci.com/CoorpAcademy/pino.py) +[](https://codecov.io/gh/CoorpAcademy/pino.py) +> In building port of [pinojs](https://github.com/pinojs/pino) logging library to python :snake: +A CHANGELOG will be introduced once it's stable enough and publicized. +Use it at you own risk, but feel free to reach with an issue. +## Basic Example +```python +from pino import pino +logger = pino( + bindings={"apptype": "prototype", "context": "main"} +) +logger.info("Hello, I just started") +logger.debug({"details": 42}, "Some details that won't be seen") +child_logger = logger.child(context="some_job") +child_logger.info("Job started") +child_logger.info({"duration": 4012}, "Job completed %s", "NOW") +logger.info("Program completed") +``` +Which would output: +``` +{"level": "info", "time": 1587740056952, "message": "Hello, I just started", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Job started", "host": "SomeHost", "context": "some_job", "apptype": "prototype", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Job completed NOW", "host": "SomeHost", "duration": 4012, "context": "some_job", "apptype": "prototype", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Program completed", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0} +``` +## API +### pino() constructor arguments +- `bindings`: meta attached to the messages by default +- `level`: minimal level to output logs, _default to `info`_ +- `enabled`: is logger enabled, _default to true_ +- `millidiff`: whether a millidiff is added to message, `ms` since last message, _enabled by default_. +- `stream` : stream to write logs to, default to `sys.stdout` +- `dump_function`: function to be used to serialise object to JSON, _default `json.dumps`_ +- `messagekey`: key for message entry, _default `message`_ +### pino logger instance +- log methods: `critical`, `error`, `warn`, `info`, `debug`: (extra_bindings?), message, template value +- `.level`: access or update current log level +- `child(metas)`: create a child logger instance with new metas/bindings attached to it. (metas can be provided either as dict or kwargs) +### Complex examples +You can see more detailed examples in the [**examples** folder](./examples), notably [complex.py](./examples/complex.py) +## Development :hammer_and_wrench: +This library use [***Poetry***](https://python-poetry.org/) for management of the project, it's dependencies, build and else. +You can run test on all supported python version with `poetry run task test` (which will run `tox`), +or you can run on your current python version with `poetry run task pytest`. + +%package -n python3-pino +Summary: Python json logger inspired by pino.js +Provides: python-pino +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pino +> **Json natural logger for python** inspired by [pino.js](https://github.com/pinojs/pino) :evergreen_tree: +[](https://pypi.org/project/pino/) +[](https://pypi.python.org/pypi/pino) +[](https://travis-ci.com/CoorpAcademy/pino.py) +[](https://codecov.io/gh/CoorpAcademy/pino.py) +> In building port of [pinojs](https://github.com/pinojs/pino) logging library to python :snake: +A CHANGELOG will be introduced once it's stable enough and publicized. +Use it at you own risk, but feel free to reach with an issue. +## Basic Example +```python +from pino import pino +logger = pino( + bindings={"apptype": "prototype", "context": "main"} +) +logger.info("Hello, I just started") +logger.debug({"details": 42}, "Some details that won't be seen") +child_logger = logger.child(context="some_job") +child_logger.info("Job started") +child_logger.info({"duration": 4012}, "Job completed %s", "NOW") +logger.info("Program completed") +``` +Which would output: +``` +{"level": "info", "time": 1587740056952, "message": "Hello, I just started", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Job started", "host": "SomeHost", "context": "some_job", "apptype": "prototype", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Job completed NOW", "host": "SomeHost", "duration": 4012, "context": "some_job", "apptype": "prototype", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Program completed", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0} +``` +## API +### pino() constructor arguments +- `bindings`: meta attached to the messages by default +- `level`: minimal level to output logs, _default to `info`_ +- `enabled`: is logger enabled, _default to true_ +- `millidiff`: whether a millidiff is added to message, `ms` since last message, _enabled by default_. +- `stream` : stream to write logs to, default to `sys.stdout` +- `dump_function`: function to be used to serialise object to JSON, _default `json.dumps`_ +- `messagekey`: key for message entry, _default `message`_ +### pino logger instance +- log methods: `critical`, `error`, `warn`, `info`, `debug`: (extra_bindings?), message, template value +- `.level`: access or update current log level +- `child(metas)`: create a child logger instance with new metas/bindings attached to it. (metas can be provided either as dict or kwargs) +### Complex examples +You can see more detailed examples in the [**examples** folder](./examples), notably [complex.py](./examples/complex.py) +## Development :hammer_and_wrench: +This library use [***Poetry***](https://python-poetry.org/) for management of the project, it's dependencies, build and else. +You can run test on all supported python version with `poetry run task test` (which will run `tox`), +or you can run on your current python version with `poetry run task pytest`. + +%package help +Summary: Development documents and examples for pino +Provides: python3-pino-doc +%description help +> **Json natural logger for python** inspired by [pino.js](https://github.com/pinojs/pino) :evergreen_tree: +[](https://pypi.org/project/pino/) +[](https://pypi.python.org/pypi/pino) +[](https://travis-ci.com/CoorpAcademy/pino.py) +[](https://codecov.io/gh/CoorpAcademy/pino.py) +> In building port of [pinojs](https://github.com/pinojs/pino) logging library to python :snake: +A CHANGELOG will be introduced once it's stable enough and publicized. +Use it at you own risk, but feel free to reach with an issue. +## Basic Example +```python +from pino import pino +logger = pino( + bindings={"apptype": "prototype", "context": "main"} +) +logger.info("Hello, I just started") +logger.debug({"details": 42}, "Some details that won't be seen") +child_logger = logger.child(context="some_job") +child_logger.info("Job started") +child_logger.info({"duration": 4012}, "Job completed %s", "NOW") +logger.info("Program completed") +``` +Which would output: +``` +{"level": "info", "time": 1587740056952, "message": "Hello, I just started", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Job started", "host": "SomeHost", "context": "some_job", "apptype": "prototype", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Job completed NOW", "host": "SomeHost", "duration": 4012, "context": "some_job", "apptype": "prototype", "millidiff": 0} +{"level": "info", "time": 1587740056952, "message": "Program completed", "host": "SomeHost", "apptype": "prototype", "context": "main", "millidiff": 0} +``` +## API +### pino() constructor arguments +- `bindings`: meta attached to the messages by default +- `level`: minimal level to output logs, _default to `info`_ +- `enabled`: is logger enabled, _default to true_ +- `millidiff`: whether a millidiff is added to message, `ms` since last message, _enabled by default_. +- `stream` : stream to write logs to, default to `sys.stdout` +- `dump_function`: function to be used to serialise object to JSON, _default `json.dumps`_ +- `messagekey`: key for message entry, _default `message`_ +### pino logger instance +- log methods: `critical`, `error`, `warn`, `info`, `debug`: (extra_bindings?), message, template value +- `.level`: access or update current log level +- `child(metas)`: create a child logger instance with new metas/bindings attached to it. (metas can be provided either as dict or kwargs) +### Complex examples +You can see more detailed examples in the [**examples** folder](./examples), notably [complex.py](./examples/complex.py) +## Development :hammer_and_wrench: +This library use [***Poetry***](https://python-poetry.org/) for management of the project, it's dependencies, build and else. +You can run test on all supported python version with `poetry run task test` (which will run `tox`), +or you can run on your current python version with `poetry run task pytest`. + +%prep +%autosetup -n pino-0.6.0 + +%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-pino -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.0-1 +- Package Spec generated |