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