diff --git a/.gitignore b/.gitignore
index 0bf0832..98ea5cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,6 @@ __pycache__/
dist/
*.egg-info/
.coverage
+build/
+setup.cfg
+tg_logger.toml
diff --git a/README.md b/README.md
index 86fbbbd..1c5e450 100644
--- a/README.md
+++ b/README.md
@@ -1,43 +1,49 @@
-#  tg_logger tool
+#  Telegram logger
[](https://pypi.org/project/tg-logger/)
+[](https://pypi.org/project/tg-logger/)
+[](https://pypi.org/project/tg-logger/)
-bridging python logging and user files to tg bot
-## Example
+Bridging python logging and files to tg bot
+## Installation & Usage
+- Available by `pip install tg-logger`
+- Use with `import tg_logger`
+
+## Examples
+### TgLogger example
```python
-# Copyright (c) ChernV (@otter18), 2021.
-
import logging
-
import tg_logger
# Telegram data
token = "1234567890:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
users = [1111111111]
-# Logging format
-logging.basicConfig(format='%(asctime)s:%(name)s:%(levelname)s - %(message)s')
-formatter = logging.Formatter('%(name)s:%(levelname)s - %(message)s
')
-
-# Setup TgLoggerHandler
-tg_handler = tg_logger.TgLoggerHandler(
- token=token, # tg bot token
- users=users, # list of user_id
- timeout=10 # default value is 10 seconds
-)
-tg_handler.setFormatter(formatter)
-logger = logging.getLogger()
+# Base logger
+logger = logging.getLogger('foo')
logger.setLevel(logging.INFO)
-logger.addHandler(tg_handler)
+
+# Logging bridge setup
+tg_logger.setup(logger, token=token, users=users)
# Test
logger.info("Hello from tg_logger by otter18")
+```
+
+### TgFileLogger example
+```python
+import logging
+import tg_logger
+
+# Telegram data
+token = "1234567890:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+users = [1111111111]
# TgFileLogger example
tg_files_logger = tg_logger.TgFileLogger(
token=token, # tg bot token
users=users, # list of user_id
- timeout=10 # default is 10 seconds
+ timeout=10 # 10 seconds by default
)
file_name = "test.txt"
@@ -45,10 +51,7 @@ with open(file_name, 'w') as example_file:
example_file.write("Hello from tg_logger by otter18")
tg_files_logger.send(file_name, "Test file")
-
-# And one more time...
-logger.info("Finishing tg_logger demo")
-
```
-## Result
-
+
+### Example screenshot
+
diff --git a/example/example.py b/example/example.py
index 1f64887..1052f1e 100644
--- a/example/example.py
+++ b/example/example.py
@@ -8,20 +8,12 @@ import tg_logger
token = "1234567890:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
users = [1111111111]
-# Logging format
-logging.basicConfig(format='%(asctime)s:%(name)s:%(levelname)s - %(message)s')
-formatter = logging.Formatter('%(name)s:%(levelname)s - %(message)s
')
-
-# Setup TgLoggerHandler
-tg_handler = tg_logger.TgLoggerHandler(
- token=token, # tg bot token
- users=users, # list of user_id
- timeout=10 # default value is 10 seconds
-)
-tg_handler.setFormatter(formatter)
-logger = logging.getLogger()
+# Base logger
+logger = logging.getLogger('foo')
logger.setLevel(logging.INFO)
-logger.addHandler(tg_handler)
+
+# Logging bridge setup
+tg_logger.setup(logger, token=token, users=users)
# Test
logger.info("Hello from tg_logger by otter18")
diff --git a/setup.py b/setup.py
index 3343864..beb9df6 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup(
name="tg_logger",
- version="2.0.1",
+ version="3.0",
description="A tool to bridge python logging and user files to telegram bot",
long_description=open("README.md").read(),
long_description_content_type="text/markdown",
@@ -12,5 +12,11 @@ setup(
packages=find_packages(),
install_requires=[
"pyTelegramBotAPI==3.7.6",
- ]
+ ],
+ classifiers=[
+ "Programming Language :: Python :: 3",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: OS Independent",
+ ],
+ python_requires='>=3.6',
)
diff --git a/tg_logger.toml b/tg_logger.toml
deleted file mode 100644
index b5a3c46..0000000
--- a/tg_logger.toml
+++ /dev/null
@@ -1,6 +0,0 @@
-[build-system]
-requires = [
- "setuptools>=42",
- "wheel"
-]
-build-backend = "setuptools.build_meta"
\ No newline at end of file
diff --git a/tg_logger/__init__.py b/tg_logger/__init__.py
index 9ed559c..3539d51 100644
--- a/tg_logger/__init__.py
+++ b/tg_logger/__init__.py
@@ -9,7 +9,35 @@ import telebot
# logging setup
logger = logging.getLogger(__name__)
-logger.setLevel(logging.INFO)
+
+
+def setup(base_logger: logging.Logger,
+ token: str = '',
+ users: List[int] = [],
+ timeout: int = 10,
+ tg_format: str = '%(name)s:%(levelname)s - %(message)s
'):
+ """
+ Setup TgLogger
+
+ :param base_logger: base logging.Logger obj
+ :param token: tg bot token to log form
+ :param users: list of used_id to log to
+ :param timeout: seconds for retrying to send log if error occupied
+ :param tg_format: logging format for tg messages (html parse mode)
+
+ :return: None
+ """
+ # Logging format
+ formatter = logging.Formatter(tg_format)
+
+ # Setup TgLoggerHandler
+ tg_handler = TgLoggerHandler(
+ token=token, # tg bot token
+ users=users, # list of user_id
+ timeout=timeout # default value is 10 seconds
+ )
+ tg_handler.setFormatter(formatter)
+ base_logger.addHandler(tg_handler)
class TgLoggerHandler(StreamHandler):
@@ -17,7 +45,7 @@ class TgLoggerHandler(StreamHandler):
def __init__(self, token: str, users: List[int], timeout: int = 10):
"""
- Setup TgLoggerHandler tool
+ Setup TgLoggerHandler class
:param token: tg bot token to log form
:param users: list of used_id to log to