mirror of
				https://github.com/otter18/tg_logger.git
				synced 2025-10-30 23:27:50 +02:00 
			
		
		
		
	v3.0 initial commit
This commit is contained in:
		
							
								
								
									
										59
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,45 +1,54 @@ | ||||
| #  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('<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" | ||||
| @@ -47,10 +56,8 @@ 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 | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -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('<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") | ||||
|   | ||||
							
								
								
									
										2
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								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,12 +12,42 @@ 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 TgLoggerHandler tool | ||||
|  | ||||
|     :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) | ||||
|     # return base_logger | ||||
|  | ||||
|  | ||||
| class TgLoggerHandler(StreamHandler): | ||||
|     """Logger handler for tg_logger""" | ||||
|  | ||||
|     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