Initial attempt to add matrix-nio to a logging module
This commit is contained in:
parent
1ef6cc4857
commit
b16485e29e
@ -0,0 +1,3 @@
|
||||
# Kraken bot
|
||||
|
||||
A Python bot for day-trading cryptocurrencies on the Kraken exchange.
|
55
kraken_bot/MatrixLogger.py
Normal file
55
kraken_bot/MatrixLogger.py
Normal file
@ -0,0 +1,55 @@
|
||||
import asyncio
|
||||
import logging
|
||||
|
||||
from nio import AsyncClient, MatrixRoom, RoomMessageText
|
||||
|
||||
class MatrixHandler(logging.Handler):
|
||||
def __init__(self, url, user_id, user_password, room_id):
|
||||
super().__init__()
|
||||
self.client = AsyncClient(url, user_id)
|
||||
self.room_id = room_id
|
||||
self.client.add_event_callback(self.message_callback, RoomMessageText)
|
||||
await self.client.login(user_password)
|
||||
|
||||
def message_callback(self, room: MatrixRoom, event: RoomMessageText) -> None:
|
||||
return
|
||||
|
||||
def emit(self, record):
|
||||
self.client.room_send(
|
||||
self.room_id,
|
||||
message_type='m.room.message',
|
||||
content={'msgtype': 'm.text', 'body': record}
|
||||
)
|
||||
|
||||
class MatrixLogger:
|
||||
def __init__(self, name):
|
||||
self.logger = logging.getLogger(name)
|
||||
self.logger.setLevel(logging.DEBUG)
|
||||
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setLevel(logging.DEBUG)
|
||||
console_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
|
||||
|
||||
|
||||
matrix_handler = MatrixHandler(room_id)
|
||||
matrix_handler.setLevel(logging.INFO)
|
||||
matrix_handler.setFormatter(logging.Formatter('%(levelname)s - %(message)s'))
|
||||
|
||||
self.logger.addHandler(console_handler)
|
||||
self.logger.addHandler(matrix_handler)
|
||||
|
||||
def debug(self, message):
|
||||
self.logger.debug(message)
|
||||
|
||||
def info(self, message):
|
||||
self.logger.info(message)
|
||||
|
||||
def warning(self, message):
|
||||
self.logger.warning(message)
|
||||
|
||||
def error(self, message):
|
||||
self.logger.error(message)
|
||||
|
||||
def critical(self, message):
|
||||
self.logger.critical(message)
|
||||
|
Loading…
Reference in New Issue
Block a user