Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
f8f05df8
提交
f8f05df8
authored
6月 13, 2025
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
补充_process_line函数对日志去重的IP过滤,parse_log_line函数增加IP过滤,处理相同错误日志因IP不同识别为不同错误问题。
上级
234b7179
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
17 行增加
和
20 行删除
+17
-20
README.md
系统监测/README.md
+3
-2
服务日志监测.py
系统监测/系统日志监测/服务日志监测.py
+14
-18
没有找到文件。
系统监测/README.md
浏览文件 @
f8f05df8
...
...
@@ -16,4 +16,5 @@
6.
2025-06-13:
-
日志监测服务补充对外云端服务以及展厅统一平台微服务。服务监测补充对外云端以及展厅环境。
-
处理日志文件存放路径问题,文件目录名称被修改引起。处理日志文件存放问题,优化路径。
-
补充监测服务的前置ngrok映射以及端口开放的使用指令注释,处理注释错误。
\ No newline at end of file
-
补充监测服务的前置ngrok映射以及端口开放的使用指令注释,处理注释错误。
-
补充_process_line函数对日志去重的IP过滤,parse_log_line函数增加IP过滤,处理相同错误日志因IP不同识别为不同错误问题。
\ No newline at end of file
系统监测/系统日志监测/服务日志监测.py
浏览文件 @
f8f05df8
...
...
@@ -214,7 +214,10 @@ class LogMonitor:
error_log_url
=
self
.
generate_error_log_url
(
file_path
)
# 使用结构化字段做 key
key
=
f
"{parsed['module']}_{parsed['action']}_{parsed['message']}"
# 修改后的去重key生成
clean_message
=
re
.
sub
(
r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
,
'[IP]'
,
parsed
[
'message'
])
key
=
f
"{parsed['module']}_{parsed['action']}_{clean_message}"
# 打印构造去重key值
logging
.
info
(
f
"构造去重 key: {key}"
)
error_hash
=
hash
(
key
)
...
...
@@ -299,33 +302,26 @@ class LogMonitor:
def
parse_log_line
(
self
,
line
):
logging
.
info
(
f
"正在处理的日志行: {line}"
)
logging
.
info
(
f
"repr格式: {repr(line)}"
)
# 原有匹配逻辑
timestamp_match
=
re
.
match
(
r'^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+)'
,
line
)
level_match
=
re
.
search
(
r'\s(ERROR|INFO|WARNING)\b'
,
line
)
# 扩展支持更多日志级别
if
not
timestamp_match
or
not
level_match
:
return
None
# 修改后的正则表达式:同时匹配中文【】和英文[]括号
level_match
=
re
.
search
(
r'\s(ERROR|INFO|WARNING)\b'
,
line
)
bracket_content
=
re
.
findall
(
r'\[(.*?)\]|\【(.*?)\】'
,
line
)
bracket_content
=
[
x
[
0
]
or
x
[
1
]
for
x
in
bracket_content
if
x
[
0
]
or
x
[
1
]]
logging
.
info
(
f
"提取到的内容: {bracket_content}"
)
if
len
(
bracket_content
)
<
3
:
if
not
timestamp_match
or
not
level_match
or
len
(
bracket_content
)
<
3
:
return
None
module
=
bracket_content
[
0
]
.
strip
()
action
=
bracket_content
[
1
]
.
strip
()
message
=
bracket_content
[
2
]
.
strip
(
)
# IP过滤函数
def
remove_ip
(
text
):
return
re
.
sub
(
r'\d{1,3}\\.\d{1,3}\\.\d{1,3}\\.\d{1,3}'
,
'[IP]'
,
text
)
return
{
'level'
:
level_match
.
group
(
1
)
.
strip
(),
'module'
:
module
,
'action'
:
action
,
'message'
:
message
,
'raw'
:
line
.
strip
()
'module'
:
remove_ip
(
bracket_content
[
0
]
.
strip
())
,
'action'
:
remove_ip
(
bracket_content
[
1
]
.
strip
())
,
'message'
:
remove_ip
(
bracket_content
[
2
]
.
strip
())
,
'raw'
:
line
.
strip
()
# 保留原始信息
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论