mirror of
https://github.com/otter18/tg_logger.git
synced 2025-08-10 21:41:59 +02:00
Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
b9c4bd8872 | ||
|
89730a4702 | ||
|
3d257f1506 | ||
|
f9d92952b4 | ||
|
c8c69b1cf9 | ||
|
0d563d9203 | ||
|
b455a023d9 | ||
|
dd76f85e1c | ||
|
f72e3d6ba2 | ||
|
34e7761bcf |
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
__pycache__/
|
||||
*.pyc
|
||||
dist/
|
||||
*.egg-info/
|
||||
.coverage
|
||||
build/
|
||||
setup.cfg
|
||||
tg_logger.toml
|
58
README.md
58
README.md
@@ -1,40 +1,49 @@
|
||||
# tg_logger tool
|
||||
bridging python logging and user files to tg bot
|
||||
## Example
|
||||
#  Telegram logger
|
||||
[](https://pypi.org/project/tg-logger/)
|
||||
[](https://pypi.org/project/tg-logger/)
|
||||
[](https://pypi.org/project/tg-logger/)
|
||||
|
||||
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('<b>%(name)s:%(levelname)s</b> - <code>%(message)s</code>')
|
||||
|
||||
# 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"
|
||||
@@ -42,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
|
||||

|
||||
|
@@ -1,43 +1,35 @@
|
||||
# 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('<b>%(name)s:%(levelname)s</b> - <code>%(message)s</code>')
|
||||
|
||||
# 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()
|
||||
logger.setLevel(logging.INFO)
|
||||
logger.addHandler(tg_handler)
|
||||
|
||||
# Test
|
||||
logger.info("Hello from tg_logger by otter18")
|
||||
|
||||
# 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
|
||||
)
|
||||
|
||||
file_name = "test.txt"
|
||||
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")
|
||||
# Copyright (c) ChernV (@otter18), 2021.
|
||||
|
||||
import logging
|
||||
|
||||
import tg_logger
|
||||
|
||||
# Telegram data
|
||||
token = "1234567890:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
users = [1111111111]
|
||||
|
||||
# Base logger
|
||||
logger = logging.getLogger('foo')
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
# Logging bridge setup
|
||||
tg_logger.setup(logger, token=token, users=users)
|
||||
|
||||
# Test
|
||||
logger.info("Hello from tg_logger by otter18")
|
||||
|
||||
# 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
|
||||
)
|
||||
|
||||
file_name = "test.txt"
|
||||
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")
|
Binary file not shown.
Before Width: | Height: | Size: 38 KiB |
BIN
img/example_scr.png
Normal file
BIN
img/example_scr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 235 KiB |
@@ -1 +0,0 @@
|
||||
pytelegrambotapi
|
22
setup.py
Normal file
22
setup.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name="tg_logger",
|
||||
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",
|
||||
author="ChernV (otter18)",
|
||||
author_email="vchern185@gmail.com",
|
||||
url="https://github.com/otter18/tg_logger",
|
||||
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',
|
||||
)
|
@@ -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 = '<b>%(name)s:%(levelname)s</b> - <code>%(message)s</code>'):
|
||||
"""
|
||||
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
|
Reference in New Issue
Block a user