feat:增加博客搜索功能
This commit is contained in:
19
api/blog.py
19
api/blog.py
@@ -6,9 +6,10 @@ from sqlalchemy.orm import Session
|
||||
from config.auth import verify_token
|
||||
from schemas.blog import BlogResponse, BlogQuery, BlogCategoryResponse, BlogStatsResponse, \
|
||||
BlogLatestResponse, BlogCommentCreate, BlogCommentResponse, BlogVisitResponse, BlogCreate, BlogUpdate
|
||||
from schemas.blog_elastic import BlogSearch
|
||||
from schemas.pagination import PageResult
|
||||
from config.database import get_db
|
||||
from service import blog_service
|
||||
from service import blog_service, blog_elastic_service
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/blog",
|
||||
@@ -17,6 +18,16 @@ router = APIRouter(
|
||||
)
|
||||
|
||||
|
||||
@router.get("/sync", summary="同步博客到elastic", response_model=bool)
|
||||
def sync_all_blog(db: Session = Depends(get_db)):
|
||||
return blog_elastic_service.sync_all_blog(db)
|
||||
|
||||
|
||||
@router.get("/search", summary="搜索elastic", response_model=List[BlogSearch])
|
||||
def search_blog(keyword: str):
|
||||
return blog_elastic_service.search_blog(keyword)
|
||||
|
||||
|
||||
@router.get("/page", summary="分页查询博客", response_model=PageResult[BlogResponse])
|
||||
def query_blog_by_page(current_page: int = Query(1, ge=1, alias="currentPage", description="当前页码"),
|
||||
page_size: int = Query(10, ge=1, le=100, alias="pageSize", description="每页数量"),
|
||||
@@ -36,17 +47,17 @@ def query_blog_by_id(blog_id: int, db: Session = Depends(get_db)):
|
||||
|
||||
|
||||
@router.post("", summary="新增博客内容", response_model=bool)
|
||||
def add_blog(blog: BlogCreate, db: Session = Depends(get_db), _ = Depends(verify_token)):
|
||||
def add_blog(blog: BlogCreate, db: Session = Depends(get_db), _=Depends(verify_token)):
|
||||
return blog_service.add_blog(db, blog)
|
||||
|
||||
|
||||
@router.put("/{blog_id}", summary="更新博客内容", response_model=bool)
|
||||
def update_blog(blog_id: int, blog: BlogUpdate, db: Session = Depends(get_db), _ = Depends(verify_token)):
|
||||
def update_blog(blog_id: int, blog: BlogUpdate, db: Session = Depends(get_db), _=Depends(verify_token)):
|
||||
return blog_service.update_blog(db, blog_id, blog)
|
||||
|
||||
|
||||
@router.delete("/{blog_id}", summary="删除博客内容", response_model=bool)
|
||||
def delete_blog(blog_id: int, db: Session = Depends(get_db), _ = Depends(verify_token)):
|
||||
def delete_blog(blog_id: int, db: Session = Depends(get_db), _=Depends(verify_token)):
|
||||
return blog_service.delete_blog(db, blog_id)
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
fastapi~=0.115.12
|
||||
fastapi~=0.115.12
|
||||
@@ -12,6 +12,19 @@ class BlogElastic(BaseModel):
|
||||
createTime: Optional[Union[datetime, str]] = None
|
||||
updateTime: Optional[Union[datetime, str]] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class BlogSearch(BaseModel):
|
||||
id: int
|
||||
title: str
|
||||
content: str
|
||||
highlight: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
BLOG_MAPPING = {
|
||||
"mappings": {
|
||||
|
||||
@@ -1,7 +1,56 @@
|
||||
from datetime import datetime
|
||||
from typing import List
|
||||
|
||||
from config.logging import logger
|
||||
|
||||
from elasticsearch.helpers import bulk
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from config.elastic import es, BLOG_INDEX
|
||||
from schemas.blog_elastic import BlogElastic
|
||||
from models.blog import Blog, BlogCategory, BlogContent
|
||||
from schemas.blog_elastic import BlogElastic, BlogSearch
|
||||
|
||||
|
||||
def sync_all_blog(db: Session) -> bool:
|
||||
query = select(
|
||||
Blog.id,
|
||||
Blog.title,
|
||||
BlogCategory.name.label("category"),
|
||||
BlogContent.content.label("content"),
|
||||
Blog.create_time.label("createTime"),
|
||||
Blog.update_time.label("updateTime"),
|
||||
).select_from(Blog).outerjoin(
|
||||
BlogCategory, Blog.category_id == BlogCategory.id
|
||||
).outerjoin(
|
||||
BlogContent, Blog.content_id == BlogContent.id
|
||||
)
|
||||
results = db.execute(query).fetchall()
|
||||
|
||||
actions = [
|
||||
{
|
||||
"_op_type": "index", # 如果存在则更新,不存在则创建
|
||||
"_index": BLOG_INDEX,
|
||||
"_id": blog.id,
|
||||
"_source": {
|
||||
"title": blog.title,
|
||||
"category": blog.category,
|
||||
"content": blog.content.decode("utf-8"),
|
||||
"createTime": blog.createTime.strftime("%Y-%m-%d %H:%M:%S"),
|
||||
"updateTime": blog.updateTime.strftime("%Y-%m-%d %H:%M:%S")
|
||||
}
|
||||
}
|
||||
for blog in results
|
||||
]
|
||||
|
||||
success_count, errors = bulk(es, actions=actions)
|
||||
|
||||
if errors:
|
||||
logger.error(f"部分文档同步失败,成功同步 {success_count} 条")
|
||||
return False
|
||||
|
||||
logger.info(f"成功同步 {success_count} 条博客到 Elasticsearch")
|
||||
return True
|
||||
|
||||
|
||||
def add_blog_elastic(blog: BlogElastic) -> bool:
|
||||
@@ -35,3 +84,55 @@ def delete_blog(blog_id: int) -> bool:
|
||||
es.delete(index=BLOG_INDEX, id=blog_id)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def search_blog(keyword: str) -> List[BlogSearch]:
|
||||
# 构造查询请求
|
||||
body = {
|
||||
"query": {
|
||||
"multi_match": {
|
||||
"query": keyword,
|
||||
"fields": ["title^3", "content"],
|
||||
"type": "phrase"
|
||||
}
|
||||
},
|
||||
"highlight": {
|
||||
"pre_tags": ["<mark>"],
|
||||
"post_tags": ["</mark>"],
|
||||
"fields": {
|
||||
"title": {},
|
||||
"content": {
|
||||
"fragment_size": 150,
|
||||
"number_of_fragments": 2,
|
||||
"no_match_size": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
"_source": ["title", "content"]
|
||||
}
|
||||
|
||||
response = es.search(index=BLOG_INDEX, body=body)
|
||||
|
||||
results = []
|
||||
for hit in response["hits"]["hits"]:
|
||||
highlight = hit.get("highlight", {})
|
||||
|
||||
# 合并所有高亮片段(标题+内容)
|
||||
all_highlights = []
|
||||
if "title" in highlight:
|
||||
all_highlights.extend(highlight["title"])
|
||||
if "content" in highlight:
|
||||
all_highlights.extend(highlight["content"])
|
||||
|
||||
# 优先使用高亮内容,否则截取内容开头
|
||||
displayed_content = " ".join(all_highlights) if all_highlights \
|
||||
else hit["_source"].get("content", "")[:200] + "..."
|
||||
|
||||
results.append(BlogSearch(
|
||||
id=hit["_id"],
|
||||
title=hit["_source"]["title"],
|
||||
content=displayed_content,
|
||||
highlight=" | ".join(all_highlights) # 合并所有高亮片段
|
||||
))
|
||||
|
||||
return results
|
||||
|
||||
250
sys.stdout
250
sys.stdout
@@ -858,3 +858,253 @@ category
|
||||
[32m2025-09-25 00:06:40.224[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: POST http://127.0.0.1:8082/blog[0m
|
||||
[32m2025-09-25 00:07:13.887[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: POST http://127.0.0.1:8082/blog[0m
|
||||
[32m2025-09-25 00:07:15.655[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: POST http://127.0.0.1:8082/blog[0m
|
||||
[32m2025-09-25 11:44:15.070[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/[0m
|
||||
[32m2025-09-25 11:44:15.071[0m | [33m[1mWARNING [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m26[0m - [33m[1m响应: 404[0m
|
||||
[32m2025-09-25 11:44:15.173[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/favicon.ico[0m
|
||||
[32m2025-09-25 11:44:15.174[0m | [33m[1mWARNING [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m26[0m - [33m[1m响应: 404[0m
|
||||
[32m2025-09-25 11:44:20.341[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/docs[0m
|
||||
[32m2025-09-25 11:44:21.109[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/openapi.json[0m
|
||||
[32m2025-09-25 11:44:24.250[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 11:44:24.410[0m | [41m[1mCRITICAL[0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m44[0m - [41m[1m未知异常: 1 validation error for BlogElastic
|
||||
Input should be a valid dictionary or instance of BlogElastic [type=model_type, input_value=(591259203186757, 'MyBati...xe3\x80\x82</font>\n\n'), input_type=Row]
|
||||
For further information visit https://errors.pydantic.dev/2.11/v/model_type[0m
|
||||
[32m2025-09-25 11:45:40.490[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 11:45:40.555[0m | [41m[1mCRITICAL[0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m44[0m - [41m[1m未知异常: You must set the config attribute `from_attributes=True` to use from_orm[0m
|
||||
[32m2025-09-25 11:46:36.849[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 11:46:36.917[0m | [41m[1mCRITICAL[0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m44[0m - [41m[1m未知异常: list.count() takes exactly one argument (0 given)[0m
|
||||
[32m2025-09-25 11:47:47.735[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:02:12.322[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:07:05.987[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:09:49.942[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:11:29.949[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:12:05.262[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:20:22.224[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:20:22.403[0m | [1mINFO [0m | [36mservice.blog_elastic_service[0m:[36msync_all_blog[0m:[36m50[0m - [1m成功同步 13 条博客到 Elasticsearch[0m
|
||||
[32m2025-09-25 13:21:18.623[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/sync[0m
|
||||
[32m2025-09-25 13:21:18.753[0m | [1mINFO [0m | [36mservice.blog_elastic_service[0m:[36msync_all_blog[0m:[36m50[0m - [1m成功同步 13 条博客到 Elasticsearch[0m
|
||||
[32m2025-09-25 13:26:43.033[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/docs[0m
|
||||
[32m2025-09-25 13:26:43.260[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/openapi.json[0m
|
||||
[32m2025-09-25 13:26:51.271[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:26:51.272[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:27:28.435[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:27:28.436[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:28:02.588[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:28:02.589[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:28:26.051[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:28:26.051[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:29:14.437[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:29:14.438[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:30:29.031[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:30:29.031[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:34:01.586[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:34:01.587[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:34:20.735[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:34:20.735[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:38:11.466[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:38:11.466[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:38:15.478[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/docs[0m
|
||||
[32m2025-09-25 13:38:15.663[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/openapi.json[0m
|
||||
[32m2025-09-25 13:38:20.698[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:38:20.699[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:40:27.142[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 13:40:27.142[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 13:43:19.045[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=Spring[0m
|
||||
[32m2025-09-25 13:43:19.045[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': 'Spring'}[0m
|
||||
[32m2025-09-25 13:47:02.900[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 13:47:02.946[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10[0m
|
||||
[32m2025-09-25 13:47:02.946[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'currentPage': '1', 'pageSize': '10'}[0m
|
||||
[32m2025-09-25 13:47:03.063[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 13:48:14.267[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 13:48:14.271[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10[0m
|
||||
[32m2025-09-25 13:48:14.272[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'currentPage': '1', 'pageSize': '10'}[0m
|
||||
[32m2025-09-25 13:48:14.291[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 13:51:19.419[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 13:51:19.420[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 13:51:21.402[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/category[0m
|
||||
[32m2025-09-25 13:55:21.251[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 13:55:21.252[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/category[0m
|
||||
[32m2025-09-25 13:55:21.285[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 13:55:22.087[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 13:55:22.087[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 13:56:07.890[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 13:56:07.891[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 13:56:07.891[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 13:56:07.916[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 13:56:10.251[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 13:56:10.252[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 13:56:10.252[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 13:56:10.276[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 13:57:22.388[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 13:57:22.389[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 13:57:22.390[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 13:57:22.428[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 13:57:23.517[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 13:57:23.519[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 13:57:23.519[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 13:57:23.553[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:06:40.887[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:06:40.923[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:06:42.166[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:06:42.194[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:06:47.716[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:06:47.762[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:07:28.984[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:07:29.031[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:27:09.163[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:27:09.192[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:27:26.494[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 14:27:26.494[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 14:29:40.269[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:29:40.286[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:30:40.527[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:30:40.556[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:30:40.637[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:30:40.652[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:31:44.236[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:31:44.249[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:34:54.316[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:34:54.333[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:34:58.160[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:34:58.198[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:35:07.966[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=dd[0m
|
||||
[32m2025-09-25 14:35:07.967[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': 'dd'}[0m
|
||||
[32m2025-09-25 14:35:22.188[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 14:35:22.188[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 14:35:40.918[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:35:40.956[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:35:48.222[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 14:35:48.222[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 14:38:13.931[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:38:13.970[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:39:00.228[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:39:00.242[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:39:06.442[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:39:06.491[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:39:16.760[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:39:16.861[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:39:19.369[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:39:19.370[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:39:26.761[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:39:26.822[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:41:32.350[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E5%8D%95%E7%8B%AC[0m
|
||||
[32m2025-09-25 14:41:32.350[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '单独'}[0m
|
||||
[32m2025-09-25 14:41:35.148[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E5%8D%95[0m
|
||||
[32m2025-09-25 14:41:35.148[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '单'}[0m
|
||||
[32m2025-09-25 14:41:35.643[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=1[0m
|
||||
[32m2025-09-25 14:41:35.644[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '1'}[0m
|
||||
[32m2025-09-25 14:41:47.057[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:41:47.111[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:41:48.341[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E9%97%AE%E9%97%AE[0m
|
||||
[32m2025-09-25 14:41:48.341[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '问问'}[0m
|
||||
[32m2025-09-25 14:41:49.268[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E9%97%AE[0m
|
||||
[32m2025-09-25 14:41:49.269[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '问'}[0m
|
||||
[32m2025-09-25 14:41:49.447[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=[0m
|
||||
[32m2025-09-25 14:41:49.447[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': ''}[0m
|
||||
[32m2025-09-25 14:41:49.875[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%88%91[0m
|
||||
[32m2025-09-25 14:41:49.876[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '我'}[0m
|
||||
[32m2025-09-25 14:41:51.018[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=[0m
|
||||
[32m2025-09-25 14:41:51.018[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': ''}[0m
|
||||
[32m2025-09-25 14:41:52.360[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 14:41:52.360[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 14:41:53.388[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86[0m
|
||||
[32m2025-09-25 14:41:53.389[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框'}[0m
|
||||
[32m2025-09-25 14:41:54.484[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=[0m
|
||||
[32m2025-09-25 14:41:54.484[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': ''}[0m
|
||||
[32m2025-09-25 14:42:07.744[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 14:42:07.744[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 14:42:09.517[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=[0m
|
||||
[32m2025-09-25 14:42:09.518[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': ''}[0m
|
||||
[32m2025-09-25 14:42:22.609[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E7%9A%84[0m
|
||||
[32m2025-09-25 14:42:22.609[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '的'}[0m
|
||||
[32m2025-09-25 14:45:38.620[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%88%91[0m
|
||||
[32m2025-09-25 14:45:38.620[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '我'}[0m
|
||||
[32m2025-09-25 14:45:40.520[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E4%BD%A0[0m
|
||||
[32m2025-09-25 14:45:40.520[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '你'}[0m
|
||||
[32m2025-09-25 14:46:17.291[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:46:17.292[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:46:26.237[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:46:26.256[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:46:29.766[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:46:29.766[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:46:33.114[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:46:33.135[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:46:34.508[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:46:34.508[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:46:57.691[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:46:57.737[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:46:58.594[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:46:58.595[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:47:04.608[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:47:04.627[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:47:06.837[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:47:06.896[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:47:08.113[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:47:08.113[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:48:59.162[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:48:59.223[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:49:00.880[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:49:00.880[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:51:02.407[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:51:02.433[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:51:03.966[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:51:03.966[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:53:00.197[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:53:00.251[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:53:01.530[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:53:01.530[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:54:26.078[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:54:26.186[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:54:30.854[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:54:30.854[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:54:42.278[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:54:42.306[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:54:43.851[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%98%AF[0m
|
||||
[32m2025-09-25 14:54:43.851[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '是'}[0m
|
||||
[32m2025-09-25 14:56:17.101[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 14:56:17.102[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 14:56:22.995[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/content/:591259203186757[0m
|
||||
[32m2025-09-25 14:56:22.997[0m | [33m[1mWARNING [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m26[0m - [33m[1m响应: 422[0m
|
||||
[32m2025-09-25 14:56:30.426[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10[0m
|
||||
[32m2025-09-25 14:56:30.426[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'currentPage': '1', 'pageSize': '10'}[0m
|
||||
[32m2025-09-25 14:56:54.085[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:56:54.159[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:56:56.193[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 14:56:56.193[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 14:57:03.178[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:57:03.194[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:57:04.483[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10[0m
|
||||
[32m2025-09-25 14:57:04.483[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'currentPage': '1', 'pageSize': '10'}[0m
|
||||
[32m2025-09-25 14:57:07.503[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/content/631305371107398[0m
|
||||
[32m2025-09-25 14:57:07.541[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/comment/631305371107398[0m
|
||||
[32m2025-09-25 14:57:29.779[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:57:29.780[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10[0m
|
||||
[32m2025-09-25 14:57:29.780[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'currentPage': '1', 'pageSize': '10'}[0m
|
||||
[32m2025-09-25 14:57:29.801[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:57:31.697[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/content/631305371107398[0m
|
||||
[32m2025-09-25 14:57:31.716[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/comment/631305371107398[0m
|
||||
[32m2025-09-25 14:57:39.093[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E6%A1%86%E6%9E%B6[0m
|
||||
[32m2025-09-25 14:57:39.093[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '框架'}[0m
|
||||
[32m2025-09-25 14:57:40.678[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/content/676185644712005[0m
|
||||
[32m2025-09-25 14:57:40.693[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/comment/676185644712005[0m
|
||||
[32m2025-09-25 14:58:06.963[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E4%BD%A0[0m
|
||||
[32m2025-09-25 14:58:06.963[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '你'}[0m
|
||||
[32m2025-09-25 14:59:27.179[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:59:27.241[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:59:31.417[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 14:59:31.418[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 14:59:34.828[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E4%BD%A0%E5%A5%BD[0m
|
||||
[32m2025-09-25 14:59:34.829[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '你好'}[0m
|
||||
[32m2025-09-25 14:59:35.815[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E4%BD%A0[0m
|
||||
[32m2025-09-25 14:59:35.815[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '你'}[0m
|
||||
[32m2025-09-25 14:59:37.358[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 14:59:37.359[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 14:59:49.964[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/stats[0m
|
||||
[32m2025-09-25 14:59:50.045[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/latest[0m
|
||||
[32m2025-09-25 14:59:50.680[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 14:59:50.680[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 14:59:52.852[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/search?keyword=%E4%BD%A0[0m
|
||||
[32m2025-09-25 14:59:52.853[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'keyword': '你'}[0m
|
||||
[32m2025-09-25 14:59:54.375[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/condition?year=2025[0m
|
||||
[32m2025-09-25 14:59:54.375[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'year': '2025'}[0m
|
||||
[32m2025-09-25 15:00:09.535[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m18[0m - [1m请求: GET http://127.0.0.1:8082/blog/page?currentPage=1&pageSize=10[0m
|
||||
[32m2025-09-25 15:00:09.536[0m | [1mINFO [0m | [36mmiddleware.exceptions[0m:[36mglobal_exception_handler[0m:[36m20[0m - [1m查询参数: {'currentPage': '1', 'pageSize': '10'}[0m
|
||||
|
||||
Reference in New Issue
Block a user