From 1bbcb3d8406803ff1e843dca31908f9bbe2d5144 Mon Sep 17 00:00:00 2001 From: anima Date: Sat, 10 Aug 2024 23:24:37 +0200 Subject: [PATCH] add message search function --- LogHandlerSQLite.py | 17 +++++++++++++---- sql/selectLogsLikeMessage.sql | 4 ++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 sql/selectLogsLikeMessage.sql diff --git a/LogHandlerSQLite.py b/LogHandlerSQLite.py index c20aa33..0e0aba2 100644 --- a/LogHandlerSQLite.py +++ b/LogHandlerSQLite.py @@ -7,7 +7,7 @@ import shutil class LogHandlerSQLite(logging.Handler): """logging handler for sqlite3""" __AUTHOR__ = 'anima' - __VERSION__ = '1.0.0' + __VERSION__ = '1.1.0' def __init__(self, level: int | str = 0, dbfile: str = 'logs.db') -> None: """logging handler for sqlite3 @@ -119,6 +119,17 @@ class LogHandlerSQLite(logging.Handler): return self.__db_query('selectLogsByPID', [pid]) else: return None + def search_log(self, search: str) -> list[tuple] | None: + """search str in log message + + :param search: search string for message + :type search: str + + :return: all matched log entrys or None + :rtype: list[tuple] | None + """ + return self.__db_query('selectLogsLikeMessage', [f'%{search}%']) + ##> logging methods def emit(self, record: logging.LogRecord) -> None: """save log to db @@ -147,6 +158,4 @@ if __name__ == "__main__": log.addHandler(logDB) log.error('Here is a info') - print(logDB.get_log_by_pid()) - - t = LogHandlerSQLite() \ No newline at end of file + print(logDB.get_log_by_pid()) \ No newline at end of file diff --git a/sql/selectLogsLikeMessage.sql b/sql/selectLogsLikeMessage.sql new file mode 100644 index 0000000..e145079 --- /dev/null +++ b/sql/selectLogsLikeMessage.sql @@ -0,0 +1,4 @@ +SELECT * +FROM logs +WHERE message like :1 +; \ No newline at end of file