%global _empty_manifest_terminate_build 0 Name: python-CycLog Version: 1.1.4 Release: 1 Summary: A python module to handle cyclic logs. License: The Unlicense (Unlicense) URL: https://github.com/jonatan1609/CycleLog Source0: https://mirrors.aliyun.com/pypi/web/packages/d0/8b/fc01ee2d22ff8885938d55681bc6d75dd35d4ac456d405cc8ad1e29fc027/CycLog-1.1.4.tar.gz BuildArch: noarch %description # CycleLog This library will let you log into a cyclic file easily. #### What is a cycle log? - A cycle log is a log file which does not keep more than N lines, once the log reaches N lines the logger will delete older lines from the beginning, so you can only have latest logs which you need to figure out the error, to reproduce last steps, and such. ### basic example: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log" ) for i in range(10): logger.log(i) ``` which will be logged: ``` [27/01/2021 - 19:36] : 0 [27/01/2021 - 19:36] : 1 [27/01/2021 - 19:36] : 2 [27/01/2021 - 19:36] : 3 [27/01/2021 - 19:36] : 4 [27/01/2021 - 19:36] : 5 [27/01/2021 - 19:36] : 6 [27/01/2021 - 19:36] : 7 [27/01/2021 - 19:36] : 8 [27/01/2021 - 19:36] : 9 ``` Since the default max lines is 500, we got the entire log. let's try to change it to 5: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log", max_lines=5 ) for i in range(10): logger.log(i) ``` And now we only get the last 5 lines. ``` [27/01/2021 - 19:38] : 5 [27/01/2021 - 19:38] : 6 [27/01/2021 - 19:38] : 7 [27/01/2021 - 19:38] : 8 [27/01/2021 - 19:38] : 9 ``` In principle, you can give any object that has `__str__` method, `logger.log` converts implicitly any object to string. ### Few more settings: > `include_date: bool`, default: `True` >>determines whether to add time to log message or not. > **it affects the format message only in case of the format message is the default.** >>> for example, without date, a typical message will look: >>>> `[19:38] : 9` > `include_time: bool`, default: `True` >>determines whether to add date to log message or not. > **it affects the format message only in case of the format message is the default.** >>> for example, without time, a typical message will look: >>>> `[27/01/2021] : 9` >if both `include_time` and `include_date` will be False, a log will only show the message itself. >> `logger.log("hello")` will log `hello`, without date or time. > `max_lines: int`, default: `500`. >>Determines the maximum of lines in a file. >`message_format: str`, default: `"[{date} - {time}] : {message}"` >> you can set it to your own message and then you can add keyword arguments to `logger.log`, for example: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log", max_lines=5, message_format=CycleLogger.MESSAGE_FORMAT + " [from {name} - {n}]" ) for i in range(10): logger.log(i, name="Jonatan", n=i) ``` will be ```[27/01/2021 - 19:50] : 5 [from Jonatan - 5] [27/01/2021 - 19:50] : 6 [from Jonatan - 6] [27/01/2021 - 19:50] : 7 [from Jonatan - 7] [27/01/2021 - 19:50] : 8 [from Jonatan - 8] [27/01/2021 - 19:50] : 9 [from Jonatan - 9] ``` >`date_format: str`, default: `"%d/%m/%Y"` >> Determines how the date will look. >`time_format: str`, default: `"%H:%M"` >> Determines how the time will look. >`file_mode: str`, default: `a+` >> A mode to open the file in, the mode must be writable and readable. > you can see a list of modes and explanation: https://docs.python.org/3/library/functions.html#open %package -n python3-CycLog Summary: A python module to handle cyclic logs. Provides: python-CycLog BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-CycLog # CycleLog This library will let you log into a cyclic file easily. #### What is a cycle log? - A cycle log is a log file which does not keep more than N lines, once the log reaches N lines the logger will delete older lines from the beginning, so you can only have latest logs which you need to figure out the error, to reproduce last steps, and such. ### basic example: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log" ) for i in range(10): logger.log(i) ``` which will be logged: ``` [27/01/2021 - 19:36] : 0 [27/01/2021 - 19:36] : 1 [27/01/2021 - 19:36] : 2 [27/01/2021 - 19:36] : 3 [27/01/2021 - 19:36] : 4 [27/01/2021 - 19:36] : 5 [27/01/2021 - 19:36] : 6 [27/01/2021 - 19:36] : 7 [27/01/2021 - 19:36] : 8 [27/01/2021 - 19:36] : 9 ``` Since the default max lines is 500, we got the entire log. let's try to change it to 5: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log", max_lines=5 ) for i in range(10): logger.log(i) ``` And now we only get the last 5 lines. ``` [27/01/2021 - 19:38] : 5 [27/01/2021 - 19:38] : 6 [27/01/2021 - 19:38] : 7 [27/01/2021 - 19:38] : 8 [27/01/2021 - 19:38] : 9 ``` In principle, you can give any object that has `__str__` method, `logger.log` converts implicitly any object to string. ### Few more settings: > `include_date: bool`, default: `True` >>determines whether to add time to log message or not. > **it affects the format message only in case of the format message is the default.** >>> for example, without date, a typical message will look: >>>> `[19:38] : 9` > `include_time: bool`, default: `True` >>determines whether to add date to log message or not. > **it affects the format message only in case of the format message is the default.** >>> for example, without time, a typical message will look: >>>> `[27/01/2021] : 9` >if both `include_time` and `include_date` will be False, a log will only show the message itself. >> `logger.log("hello")` will log `hello`, without date or time. > `max_lines: int`, default: `500`. >>Determines the maximum of lines in a file. >`message_format: str`, default: `"[{date} - {time}] : {message}"` >> you can set it to your own message and then you can add keyword arguments to `logger.log`, for example: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log", max_lines=5, message_format=CycleLogger.MESSAGE_FORMAT + " [from {name} - {n}]" ) for i in range(10): logger.log(i, name="Jonatan", n=i) ``` will be ```[27/01/2021 - 19:50] : 5 [from Jonatan - 5] [27/01/2021 - 19:50] : 6 [from Jonatan - 6] [27/01/2021 - 19:50] : 7 [from Jonatan - 7] [27/01/2021 - 19:50] : 8 [from Jonatan - 8] [27/01/2021 - 19:50] : 9 [from Jonatan - 9] ``` >`date_format: str`, default: `"%d/%m/%Y"` >> Determines how the date will look. >`time_format: str`, default: `"%H:%M"` >> Determines how the time will look. >`file_mode: str`, default: `a+` >> A mode to open the file in, the mode must be writable and readable. > you can see a list of modes and explanation: https://docs.python.org/3/library/functions.html#open %package help Summary: Development documents and examples for CycLog Provides: python3-CycLog-doc %description help # CycleLog This library will let you log into a cyclic file easily. #### What is a cycle log? - A cycle log is a log file which does not keep more than N lines, once the log reaches N lines the logger will delete older lines from the beginning, so you can only have latest logs which you need to figure out the error, to reproduce last steps, and such. ### basic example: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log" ) for i in range(10): logger.log(i) ``` which will be logged: ``` [27/01/2021 - 19:36] : 0 [27/01/2021 - 19:36] : 1 [27/01/2021 - 19:36] : 2 [27/01/2021 - 19:36] : 3 [27/01/2021 - 19:36] : 4 [27/01/2021 - 19:36] : 5 [27/01/2021 - 19:36] : 6 [27/01/2021 - 19:36] : 7 [27/01/2021 - 19:36] : 8 [27/01/2021 - 19:36] : 9 ``` Since the default max lines is 500, we got the entire log. let's try to change it to 5: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log", max_lines=5 ) for i in range(10): logger.log(i) ``` And now we only get the last 5 lines. ``` [27/01/2021 - 19:38] : 5 [27/01/2021 - 19:38] : 6 [27/01/2021 - 19:38] : 7 [27/01/2021 - 19:38] : 8 [27/01/2021 - 19:38] : 9 ``` In principle, you can give any object that has `__str__` method, `logger.log` converts implicitly any object to string. ### Few more settings: > `include_date: bool`, default: `True` >>determines whether to add time to log message or not. > **it affects the format message only in case of the format message is the default.** >>> for example, without date, a typical message will look: >>>> `[19:38] : 9` > `include_time: bool`, default: `True` >>determines whether to add date to log message or not. > **it affects the format message only in case of the format message is the default.** >>> for example, without time, a typical message will look: >>>> `[27/01/2021] : 9` >if both `include_time` and `include_date` will be False, a log will only show the message itself. >> `logger.log("hello")` will log `hello`, without date or time. > `max_lines: int`, default: `500`. >>Determines the maximum of lines in a file. >`message_format: str`, default: `"[{date} - {time}] : {message}"` >> you can set it to your own message and then you can add keyword arguments to `logger.log`, for example: ```python from CycLog import CycleLogger logger = CycleLogger( file_name="your_project.log", max_lines=5, message_format=CycleLogger.MESSAGE_FORMAT + " [from {name} - {n}]" ) for i in range(10): logger.log(i, name="Jonatan", n=i) ``` will be ```[27/01/2021 - 19:50] : 5 [from Jonatan - 5] [27/01/2021 - 19:50] : 6 [from Jonatan - 6] [27/01/2021 - 19:50] : 7 [from Jonatan - 7] [27/01/2021 - 19:50] : 8 [from Jonatan - 8] [27/01/2021 - 19:50] : 9 [from Jonatan - 9] ``` >`date_format: str`, default: `"%d/%m/%Y"` >> Determines how the date will look. >`time_format: str`, default: `"%H:%M"` >> Determines how the time will look. >`file_mode: str`, default: `a+` >> A mode to open the file in, the mode must be writable and readable. > you can see a list of modes and explanation: https://docs.python.org/3/library/functions.html#open %prep %autosetup -n CycLog-1.1.4 %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-CycLog -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 1.1.4-1 - Package Spec generated