Fork a python logging handler that sends logs via Telegram Bot Api with proxy
Project description
python-telegram-handler-proxy
***********************
Original package https://github.com/sashgorokhov/python-telegram-handler
Thank you bro \m/
Installation
============
Via pip:
.. code-block:: shell
pip install python-telegram-handler-proxy
Usage
=====
Register a new telegram bot and obtain a ``authentication token``. (Instructions here https://core.telegram.org/bots#3-how-do-i-create-a-bot)
After that, you must obtain a ``chat_id``. You can do that using included simple script. Start a new conversation with newly created bot, write something to it (it is important to initiate conversation first).
Also, there is an ability for handler to automatically retrieve ``chat_id``. This will be done on handler initialization. But you still have to start a conversation with bot. Be aware: if program stops, server restarts, or something else will happen - handler will try to retrieve chat id from telegram, and may fail, if it will not find a NEW message from you. So i recommend you to use a script below for obtaining chat id.
Then run a command:
.. code-block:: shell
python -m telegram_handler <your token here>
If all went ok, a ``chat_id`` will be printed to stdout.
Using ``token`` and ``chat_id``, configure log handler in your desired way.
For example, using dictConfig:
.. code-block:: python
{
'version': 1,
'handlers': {
'telegram': {
'class': 'telegram_handler.TelegramHandler',
'token': 'your token',
'chat_id': 'chat id',
'proxy_url': 'url',
'proxy_port': None
}
},
'loggers': {
'my_logger': {
'handlers': ['telegram'],
'level': 'DEBUG'
}
}
}
Formatting
==========
Currently the format of sent messages is very simple: ``<code>%(asctime)s</code> <b>%(levelname)s</b>\nFrom %(name)s:%(funcName)s\n%(message)s``
Exception traceback will be formatted as pre-formatted fixed-width code block. (https://core.telegram.org/bots/api#html-style)
If you want to tweak it, configure a ``telegram_handler.HtmlFormatter`` with your desired format string.
Using a dictConfig:
.. code-block:: python
...
{
'formatters': {
'telegram': {
'class': 'telegram_handler.HtmlFormatter',
'fmt': '%(levelname)s %(message)s'
}
}
'handlers': {
'telegram': {
'class': 'telegram_handler.TelegramHandler',
'formatter': 'telegram',
'token': 'your token',
'chat_id': 'chat id',
'proxy_url': 'url',
'proxy_port': None
}
}
}
...
If you wish, you can enable emoji symbols in HtmlFormatter. Just specify `use_emoji=True` in HtmlFormatter settings.
This will add to levelname a :white_circle: for DEBUG, :large_blue_circle: for INFO, and :red_circle: for WARNING and ERROR levels.
.. :changelog:
History
-------
2.0.2 (2017-11-20)
++++++++++++++++++
* fix TypeError in HtmlFormatter.format (by tompipen)
2.0 (2017-03-01)
++++++++++++++++
* Refactored HtmlFormatter and MarkdownFormatter
* Refactored TelegramHandler
* No more need to call a command to obtain a chat_id - it will be obtained automatically on handler init
* Rewritten tests
* Escape LogRecord things in HtmlFormatter
* Added optional emoji symbols in HtmlFormatter.
1.1.3 (2016-09-22)
++++++++++++++++++
* Setting escape_message field of StyledFormatter missed (@ihoru)
1.1.2 (2016-05-13)
++++++++++++++++++
* Fixed setup.py requires option (changed to install_requires)
1.1.1 (2016-04-20)
++++++++++++++++++
* Use HTML Formatter as default formatter for telegram handler
1.1.0 (2016-04-20)
++++++++++++++++++
* Introduced HTML Formatter
* Added log text escaping (closed #3)
* Added requests timeout setting (closed #1)
* Catching and logging all requests and their exceptions (closed #2)
1.0.0 (2016-04-19)
++++++++++++++++++
* First PyPi release
0.1.0 (2016-04-19)
++++++++++++++++++
* Initial release
***********************
Original package https://github.com/sashgorokhov/python-telegram-handler
Thank you bro \m/
Installation
============
Via pip:
.. code-block:: shell
pip install python-telegram-handler-proxy
Usage
=====
Register a new telegram bot and obtain a ``authentication token``. (Instructions here https://core.telegram.org/bots#3-how-do-i-create-a-bot)
After that, you must obtain a ``chat_id``. You can do that using included simple script. Start a new conversation with newly created bot, write something to it (it is important to initiate conversation first).
Also, there is an ability for handler to automatically retrieve ``chat_id``. This will be done on handler initialization. But you still have to start a conversation with bot. Be aware: if program stops, server restarts, or something else will happen - handler will try to retrieve chat id from telegram, and may fail, if it will not find a NEW message from you. So i recommend you to use a script below for obtaining chat id.
Then run a command:
.. code-block:: shell
python -m telegram_handler <your token here>
If all went ok, a ``chat_id`` will be printed to stdout.
Using ``token`` and ``chat_id``, configure log handler in your desired way.
For example, using dictConfig:
.. code-block:: python
{
'version': 1,
'handlers': {
'telegram': {
'class': 'telegram_handler.TelegramHandler',
'token': 'your token',
'chat_id': 'chat id',
'proxy_url': 'url',
'proxy_port': None
}
},
'loggers': {
'my_logger': {
'handlers': ['telegram'],
'level': 'DEBUG'
}
}
}
Formatting
==========
Currently the format of sent messages is very simple: ``<code>%(asctime)s</code> <b>%(levelname)s</b>\nFrom %(name)s:%(funcName)s\n%(message)s``
Exception traceback will be formatted as pre-formatted fixed-width code block. (https://core.telegram.org/bots/api#html-style)
If you want to tweak it, configure a ``telegram_handler.HtmlFormatter`` with your desired format string.
Using a dictConfig:
.. code-block:: python
...
{
'formatters': {
'telegram': {
'class': 'telegram_handler.HtmlFormatter',
'fmt': '%(levelname)s %(message)s'
}
}
'handlers': {
'telegram': {
'class': 'telegram_handler.TelegramHandler',
'formatter': 'telegram',
'token': 'your token',
'chat_id': 'chat id',
'proxy_url': 'url',
'proxy_port': None
}
}
}
...
If you wish, you can enable emoji symbols in HtmlFormatter. Just specify `use_emoji=True` in HtmlFormatter settings.
This will add to levelname a :white_circle: for DEBUG, :large_blue_circle: for INFO, and :red_circle: for WARNING and ERROR levels.
.. :changelog:
History
-------
2.0.2 (2017-11-20)
++++++++++++++++++
* fix TypeError in HtmlFormatter.format (by tompipen)
2.0 (2017-03-01)
++++++++++++++++
* Refactored HtmlFormatter and MarkdownFormatter
* Refactored TelegramHandler
* No more need to call a command to obtain a chat_id - it will be obtained automatically on handler init
* Rewritten tests
* Escape LogRecord things in HtmlFormatter
* Added optional emoji symbols in HtmlFormatter.
1.1.3 (2016-09-22)
++++++++++++++++++
* Setting escape_message field of StyledFormatter missed (@ihoru)
1.1.2 (2016-05-13)
++++++++++++++++++
* Fixed setup.py requires option (changed to install_requires)
1.1.1 (2016-04-20)
++++++++++++++++++
* Use HTML Formatter as default formatter for telegram handler
1.1.0 (2016-04-20)
++++++++++++++++++
* Introduced HTML Formatter
* Added log text escaping (closed #3)
* Added requests timeout setting (closed #1)
* Catching and logging all requests and their exceptions (closed #2)
1.0.0 (2016-04-19)
++++++++++++++++++
* First PyPi release
0.1.0 (2016-04-19)
++++++++++++++++++
* Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for python-telegram-handler-proxy-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75c4eaf411695b70a585eb060602e91dad80e0c1cc00122913fe32368da1701f |
|
MD5 | 264a419a56d8e0968bde9804e2c00426 |
|
BLAKE2b-256 | b21387f5c4429366cb15ab5a4f32a6c48cdfc82f5df969e7df59efbc38d67bb5 |