Skip to content

Commit fe8f878

Browse files
committed
refactor: replace logging with maxkb_logger for consistent logging across modules
1 parent fe066ae commit fe8f878

File tree

19 files changed

+79
-88
lines changed

19 files changed

+79
-88
lines changed

apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from application.flow.tools import Reasoning
2626
from models_provider.models import Model
2727
from models_provider.tools import get_model_credential, get_model_instance_by_model_workspace_id
28+
from common.utils.logger import maxkb_logger
2829

2930
tool_message_template = """
3031
<details>
@@ -126,7 +127,7 @@ def mcp_response_generator(chat_model, message_list, mcp_servers):
126127
except StopAsyncIteration:
127128
break
128129
except Exception as e:
129-
logging.getLogger("max_kb").error(f'Exception: {e}')
130+
maxkb_logger.error(f'Exception: {e}')
130131
finally:
131132
loop.close()
132133

apps/common/event/listener_manage.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
@date:2023/10/20 14:01
77
@desc:
88
"""
9-
import logging
109
import os
1110
import threading
1211
import datetime
@@ -22,13 +21,13 @@
2221
from common.db.search import native_search, get_dynamics_model, native_update
2322
from common.utils.common import get_file_content
2423
from common.utils.lock import try_lock, un_lock
24+
from common.utils.logger import maxkb_logger, maxkb_error_logger
2525
from common.utils.page_utils import page_desc
2626
from knowledge.models import Paragraph, Status, Document, ProblemParagraphMapping, TaskType, State,SourceType, SearchMode
2727
from maxkb.conf import (PROJECT_DIR)
2828
from django.utils.translation import gettext_lazy as _
2929

30-
max_kb_error = logging.getLogger(__file__)
31-
max_kb = logging.getLogger(__file__)
30+
3231
lock = threading.Lock()
3332

3433

@@ -87,12 +86,12 @@ def embedding_by_paragraph_list(paragraph_id_list, embedding_model: Embeddings):
8786
ListenerManagement.embedding_by_paragraph_data_list(data_list, paragraph_id_list=paragraph_id_list,
8887
embedding_model=embedding_model)
8988
except Exception as e:
90-
max_kb_error.error(_('Query vector data: {paragraph_id_list} error {error} {traceback}').format(
89+
maxkb_error_logger.error(_('Query vector data: {paragraph_id_list} error {error} {traceback}').format(
9190
paragraph_id_list=paragraph_id_list, error=str(e), traceback=traceback.format_exc()))
9291

9392
@staticmethod
9493
def embedding_by_paragraph_data_list(data_list, paragraph_id_list, embedding_model: Embeddings):
95-
max_kb.info(_('Start--->Embedding paragraph: {paragraph_id_list}').format(paragraph_id_list=paragraph_id_list))
94+
maxkb_logger.info(_('Start--->Embedding paragraph: {paragraph_id_list}').format(paragraph_id_list=paragraph_id_list))
9695
status = Status.success
9796
try:
9897
# 删除段落
@@ -104,12 +103,12 @@ def is_save_function():
104103
# 批量向量化
105104
VectorStore.get_embedding_vector().batch_save(data_list, embedding_model, is_save_function)
106105
except Exception as e:
107-
max_kb_error.error(_('Vectorized paragraph: {paragraph_id_list} error {error} {traceback}').format(
106+
maxkb_error_logger.error(_('Vectorized paragraph: {paragraph_id_list} error {error} {traceback}').format(
108107
paragraph_id_list=paragraph_id_list, error=str(e), traceback=traceback.format_exc()))
109108
status = Status.error
110109
finally:
111110
QuerySet(Paragraph).filter(id__in=paragraph_id_list).update(**{'status': status})
112-
max_kb.info(
111+
maxkb_logger.info(
113112
_('End--->Embedding paragraph: {paragraph_id_list}').format(paragraph_id_list=paragraph_id_list))
114113

115114
@staticmethod
@@ -119,7 +118,7 @@ def embedding_by_paragraph(paragraph_id, embedding_model: Embeddings):
119118
@param paragraph_id: 段落id
120119
@param embedding_model: 向量模型
121120
"""
122-
max_kb.info(_('Start--->Embedding paragraph: {paragraph_id}').format(paragraph_id=paragraph_id))
121+
maxkb_logger.info(_('Start--->Embedding paragraph: {paragraph_id}').format(paragraph_id=paragraph_id))
123122
# 更新到开始状态
124123
ListenerManagement.update_status(QuerySet(Paragraph).filter(id=paragraph_id), TaskType.EMBEDDING, State.STARTED)
125124
try:
@@ -144,12 +143,12 @@ def is_the_task_interrupted():
144143
ListenerManagement.update_status(QuerySet(Paragraph).filter(id=paragraph_id), TaskType.EMBEDDING,
145144
State.SUCCESS)
146145
except Exception as e:
147-
max_kb_error.error(_('Vectorized paragraph: {paragraph_id} error {error} {traceback}').format(
146+
maxkb_error_logger.error(_('Vectorized paragraph: {paragraph_id} error {error} {traceback}').format(
148147
paragraph_id=paragraph_id, error=str(e), traceback=traceback.format_exc()))
149148
ListenerManagement.update_status(QuerySet(Paragraph).filter(id=paragraph_id), TaskType.EMBEDDING,
150149
State.FAILURE)
151150
finally:
152-
max_kb.info(_('End--->Embedding paragraph: {paragraph_id}').format(paragraph_id=paragraph_id))
151+
maxkb_logger.info(_('End--->Embedding paragraph: {paragraph_id}').format(paragraph_id=paragraph_id))
153152

154153
@staticmethod
155154
def embedding_by_data_list(data_list: List, embedding_model: Embeddings):
@@ -265,7 +264,7 @@ def is_the_task_interrupted():
265264

266265
if is_the_task_interrupted():
267266
return
268-
max_kb.info(_('Start--->Embedding document: {document_id}').format(document_id=document_id)
267+
maxkb_logger.info(_('Start--->Embedding document: {document_id}').format(document_id=document_id)
269268
)
270269
# 批量修改状态为PADDING
271270
ListenerManagement.update_status(QuerySet(Document).filter(id=document_id), TaskType.EMBEDDING,
@@ -285,12 +284,12 @@ def is_the_task_interrupted():
285284
document_id)),
286285
is_the_task_interrupted)
287286
except Exception as e:
288-
max_kb_error.error(_('Vectorized document: {document_id} error {error} {traceback}').format(
287+
maxkb_error_logger.error(_('Vectorized document: {document_id} error {error} {traceback}').format(
289288
document_id=document_id, error=str(e), traceback=traceback.format_exc()))
290289
finally:
291290
ListenerManagement.post_update_document_status(document_id, TaskType.EMBEDDING)
292291
ListenerManagement.get_aggregation_document_status(document_id)()
293-
max_kb.info(_('End--->Embedding document: {document_id}').format(document_id=document_id))
292+
maxkb_logger.info(_('End--->Embedding document: {document_id}').format(document_id=document_id))
294293
un_lock('embedding' + str(document_id))
295294

296295
@staticmethod
@@ -301,18 +300,18 @@ def embedding_by_knowledge(knowledge_id, embedding_model: Embeddings):
301300
@param embedding_model 向量模型
302301
:return: None
303302
"""
304-
max_kb.info(_('Start--->Embedding knowledge: {knowledge_id}').format(knowledge_id=knowledge_id))
303+
maxkb_logger.info(_('Start--->Embedding knowledge: {knowledge_id}').format(knowledge_id=knowledge_id))
305304
try:
306305
ListenerManagement.delete_embedding_by_knowledge(knowledge_id)
307306
document_list = QuerySet(Document).filter(knowledge_id=knowledge_id)
308-
max_kb.info(_('Start--->Embedding document: {document_list}').format(document_list=document_list))
307+
maxkb_logger.info(_('Start--->Embedding document: {document_list}').format(document_list=document_list))
309308
for document in document_list:
310309
ListenerManagement.embedding_by_document(document.id, embedding_model=embedding_model)
311310
except Exception as e:
312-
max_kb_error.error(_('Vectorized knowledge: {knowledge_id} error {error} {traceback}').format(
311+
maxkb_error_logger.error(_('Vectorized knowledge: {knowledge_id} error {error} {traceback}').format(
313312
knowledge_id=knowledge_id, error=str(e), traceback=traceback.format_exc()))
314313
finally:
315-
max_kb.info(_('End--->Embedding knowledge: {knowledge_id}').format(knowledge_id=knowledge_id))
314+
maxkb_logger.info(_('End--->Embedding knowledge: {knowledge_id}').format(knowledge_id=knowledge_id))
316315

317316
@staticmethod
318317
def delete_embedding_by_document(document_id):

apps/common/handle/impl/table/csv_parse_table_handle.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
from charset_normalizer import detect
55

66
from common.handle.base_parse_table_handle import BaseParseTableHandle
7-
8-
max_kb = logging.getLogger("max_kb")
7+
from common.utils.logger import maxkb_logger, maxkb_error_logger
98

109

1110
class CsvParseTableHandle(BaseParseTableHandle):
@@ -20,7 +19,7 @@ def handle(self, file, get_buffer, save_image):
2019
try:
2120
content = buffer.decode(detect(buffer)['encoding'])
2221
except BaseException as e:
23-
max_kb.error(f'csv split handle error: {e}')
22+
maxkb_logger.error(f'csv split handle error: {e}')
2423
return [{'name': file.name, 'paragraphs': []}]
2524

2625
csv_model = content.split('\n')
@@ -40,5 +39,5 @@ def get_content(self, file, save_image):
4039
try:
4140
return buffer.decode(detect(buffer)['encoding'])
4241
except BaseException as e:
43-
max_kb.error(f'csv split handle error: {e}')
42+
maxkb_error_logger.error(f'csv split handle error: {e}')
4443
return f'error: {e}'

apps/common/handle/impl/table/xls_parse_table_handle.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
import xlrd
55

66
from common.handle.base_parse_table_handle import BaseParseTableHandle
7-
8-
max_kb = logging.getLogger("max_kb")
7+
from common.utils.logger import maxkb_error_logger
98

109

1110
class XlsParseTableHandle(BaseParseTableHandle):
@@ -56,7 +55,7 @@ def handle(self, file, get_buffer, save_image):
5655
result.append({'name': sheet.name, 'paragraphs': paragraphs})
5756

5857
except BaseException as e:
59-
max_kb.error(f'excel split handle error: {e}')
58+
maxkb_error_logger.error(f'excel split handle error: {e}')
6059
return [{'name': file.name, 'paragraphs': []}]
6160
return result
6261

apps/common/handle/impl/table/xlsx_parse_table_handle.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
from common.handle.base_parse_table_handle import BaseParseTableHandle
88
from common.handle.impl.common_handle import xlsx_embed_cells_images
9-
10-
max_kb = logging.getLogger("max_kb")
9+
from common.utils.logger import maxkb_error_logger
1110

1211

1312
class XlsxParseTableHandle(BaseParseTableHandle):
@@ -74,7 +73,7 @@ def handle(self, file, get_buffer, save_image):
7473
result.append({'name': sheetname, 'paragraphs': paragraphs})
7574

7675
except BaseException as e:
77-
max_kb.error(f'excel split handle error: {e}')
76+
maxkb_error_logger.error(f'excel split handle error: {e}')
7877
return [{'name': file.name, 'paragraphs': []}]
7978
return result
8079

@@ -87,7 +86,7 @@ def get_content(self, file, save_image):
8786
if len(image_dict) > 0:
8887
save_image(image_dict.values())
8988
except Exception as e:
90-
logging.getLogger("max_kb").error(f'Exception: {e}')
89+
maxkb_error_logger.error(f'Exception: {e}')
9190
image_dict = {}
9291
md_tables = ''
9392
# 如果未指定 sheet_name,则使用第一个工作表

apps/common/handle/impl/text/pdf_split_handle.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from langchain_community.document_loaders import PyPDFLoader
2020

2121
from common.handle.base_split_handle import BaseSplitHandle
22+
from common.utils.logger import maxkb_error_logger, maxkb_logger
2223
from common.utils.split_model import SplitModel
2324

2425
default_pattern_list = [re.compile('(?<=^)# .*|(?<=\\n)# .*'),
@@ -29,7 +30,6 @@
2930
re.compile("(?<=\\n)(?<!#)###### (?!#).*|(?<=^)(?<!#)###### (?!#).*"),
3031
re.compile("(?<!\n)\n\n+")]
3132

32-
max_kb = logging.getLogger("max_kb")
3333

3434

3535
def check_links_in_pdf(doc):
@@ -72,7 +72,7 @@ def handle(self, file, pattern_list: List, with_filter: bool, limit: int, get_bu
7272
else:
7373
split_model = SplitModel(default_pattern_list, with_filter=with_filter, limit=limit)
7474
except BaseException as e:
75-
max_kb.error(f"File: {file.name}, error: {e}")
75+
maxkb_error_logger.error(f"File: {file.name}, error: {e}")
7676
return {'name': file.name,
7777
'content': []}
7878
finally:
@@ -109,7 +109,7 @@ def handle_pdf_content(file, pdf_document):
109109
raise e
110110
except BaseException as e:
111111
# 当页出错继续进行下一页,防止一个页面出错导致整个文件解析失败
112-
max_kb.error(f"File: {file.name}, Page: {page_num + 1}, error: {e}")
112+
maxkb_error_logger.error(f"File: {file.name}, Page: {page_num + 1}, error: {e}")
113113
continue
114114
finally:
115115
os.remove(page_num_pdf)
@@ -120,7 +120,7 @@ def handle_pdf_content(file, pdf_document):
120120
content = content.replace('\0', '')
121121

122122
elapsed_time = time.time() - start_time
123-
max_kb.debug(
123+
maxkb_logger.debug(
124124
f"File: {file.name}, Page: {page_num + 1}, Time : {elapsed_time: .3f}s, content-length: {len(page_content)}")
125125

126126
return content
@@ -278,7 +278,7 @@ def handle_links(doc, pattern_list, with_filter, limit):
278278
pre_toc[i]['content'] = re.sub(r'(?<!。)\n+', '', pre_toc[i]['content'])
279279
pre_toc[i]['content'] = re.sub(r'(?<!.)\n+', '', pre_toc[i]['content'])
280280
except BaseException as e:
281-
max_kb.error(_('This document has no preface and is treated as ordinary text: {e}').format(e=e))
281+
maxkb_error_logger.error(_('This document has no preface and is treated as ordinary text: {e}').format(e=e))
282282
if pattern_list is not None and len(pattern_list) > 0:
283283
split_model = SplitModel(pattern_list, with_filter, limit)
284284
else:

apps/common/job/clean_chat_job.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from application.models import Application, Chat, ChatRecord
1111
from django.db.models import Q, Max
1212
from common.lock.impl.file_lock import FileLock
13+
from common.utils.logger import maxkb_logger
1314

1415
from knowledge.models import File
1516

@@ -20,7 +21,7 @@
2021

2122
def clean_chat_log_job():
2223
from django.utils.translation import gettext_lazy as _
23-
logging.getLogger("max_kb").info(_('start clean chat log'))
24+
maxkb_logger.info(_('start clean chat log'))
2425
now = timezone.now()
2526

2627
applications = Application.objects.all().values('id', 'clean_time')
@@ -66,7 +67,7 @@ def clean_chat_log_job():
6667
if deleted_count < batch_size:
6768
break
6869

69-
logging.getLogger("max_kb").info(_('end clean chat log'))
70+
maxkb_logger.info(_('end clean chat log'))
7071

7172

7273
def run():

apps/common/job/clean_debug_file_job.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from django_apscheduler.jobstores import DjangoJobStore
1010

1111
from common.lock.impl.file_lock import FileLock
12+
from common.utils.logger import maxkb_logger
1213
from knowledge.models import File
1314

1415
scheduler = BackgroundScheduler()
@@ -18,11 +19,11 @@
1819

1920
def clean_debug_file():
2021
from django.utils.translation import gettext_lazy as _
21-
logging.getLogger("max_kb").info(_('start clean debug file'))
22+
maxkb_logger.info(_('start clean debug file'))
2223
two_hours_ago = timezone.now() - timedelta(hours=2)
2324
# 删除对应的文件
2425
File.objects.filter(Q(create_time__lt=two_hours_ago) & Q(meta__debug=True)).delete()
25-
logging.getLogger("max_kb").info(_('end clean debug file'))
26+
maxkb_logger.info(_('end clean debug file'))
2627

2728

2829
def run():

apps/common/utils/fork.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import requests
1111
from bs4 import BeautifulSoup
1212

13+
from common.utils.logger import maxkb_error_logger, maxkb_logger
14+
1315
requests.packages.urllib3.disable_warnings()
1416

1517

@@ -145,7 +147,7 @@ def get_beautiful_soup(response):
145147
try:
146148
html_content = response.content.decode(charset)
147149
except Exception as e:
148-
logging.getLogger("max_kb").error(f'{e}')
150+
maxkb_error_logger.error(f'{e}')
149151
return BeautifulSoup(html_content, "html.parser")
150152
return beautiful_soup
151153

@@ -156,14 +158,14 @@ def fork(self):
156158
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
157159
}
158160

159-
logging.getLogger("max_kb").info(f'fork:{self.base_fork_url}')
161+
maxkb_logger.info(f'fork:{self.base_fork_url}')
160162
response = requests.get(self.base_fork_url, verify=False, headers=headers)
161163
if response.status_code != 200:
162-
logging.getLogger("max_kb").error(f"url: {self.base_fork_url} code:{response.status_code}")
164+
maxkb_error_logger.error(f"url: {self.base_fork_url} code:{response.status_code}")
163165
return Fork.Response.error(f"url: {self.base_fork_url} code:{response.status_code}")
164166
bf = self.get_beautiful_soup(response)
165167
except Exception as e:
166-
logging.getLogger("max_kb_error").error(f'{str(e)}:{traceback.format_exc()}')
168+
maxkb_error_logger.error(f'{str(e)}:{traceback.format_exc()}')
167169
return Fork.Response.error(str(e))
168170
bf = self.reset_beautiful_soup(bf)
169171
link_list = self.get_child_link_list(bf)
@@ -173,6 +175,6 @@ def fork(self):
173175

174176

175177
def handler(base_url, response: Fork.Response):
176-
logging.getLogger("max_kb").info(base_url.url, base_url.tag.text if base_url.tag else None, response.content)
178+
maxkb_logger.info(base_url.url, base_url.tag.text if base_url.tag else None, response.content)
177179

178180
# ForkManage('https://bbs.fit2cloud.com/c/de/6', ['.md-content']).fork(3, set(), handler)

apps/knowledge/serializers/knowledge.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from common.exception.app_exception import AppApiException
3131
from common.utils.common import valid_license, post, get_file_content, parse_image
3232
from common.utils.fork import Fork, ChildLink
33+
from common.utils.logger import maxkb_logger
3334
from common.utils.split_model import get_split_model
3435
from knowledge.models import Knowledge, KnowledgeScope, KnowledgeType, Document, Paragraph, Problem, \
3536
ProblemParagraphMapping, TaskType, State, SearchMode, KnowledgeFolder
@@ -630,7 +631,7 @@ def handler(child_link: ChildLink, response: Fork.Response):
630631
document_name = child_link.tag.text if child_link.tag is not None and len(
631632
child_link.tag.text.strip()) > 0 else child_link.url
632633
paragraphs = get_split_model('web.md').parse(response.content)
633-
logging.getLogger("max_kb").info(child_link.url.strip())
634+
maxkb_logger.info(child_link.url.strip())
634635
first = QuerySet(Document).filter(
635636
meta__source_url=child_link.url.strip(),
636637
knowledge=knowledge

0 commit comments

Comments
 (0)