Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
编程深海AiKoder
nrfx_tool
提交
a8812542
N
nrfx_tool
项目概览
编程深海AiKoder
/
nrfx_tool
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nrfx_tool
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a8812542
编写于
12月 06, 2021
作者:
编程深海AiKoder
🚴🏻
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add log display
上级
55e0934e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
106 addition
and
0 deletion
+106
-0
app.py
app.py
+17
-0
log_utils.py
log_utils.py
+77
-0
programmer.py
programmer.py
+12
-0
未找到文件。
app.py
浏览文件 @
a8812542
#!/usr/bin/env python
#!/usr/bin/env python
import
wx
import
wx
from
log_utils
import
LogUtils
from
programmer
import
Programmer
from
programmer
import
Programmer
from
settings
import
Settings
from
settings
import
Settings
...
@@ -34,16 +35,32 @@ class NrfxTool(wx.Frame):
...
@@ -34,16 +35,32 @@ class NrfxTool(wx.Frame):
#----------------------------------------
#----------------------------------------
# log显示区域
# log显示区域
self
.
log_clear_btn
=
wx
.
Button
(
self
,
label
=
'Clear log'
)
self
.
log_clear_btn
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
log_clear_btn_handler
)
self
.
log_text
=
wx
.
TextCtrl
(
self
,
style
=
wx
.
TE_MULTILINE
|
wx
.
TE_READONLY
|
wx
.
VSCROLL
)
vbox
.
Add
(
self
.
nb
)
vbox
.
Add
(
self
.
nb
)
vbox
.
Add
(
self
.
log_clear_btn
,
flag
=
wx
.
EXPAND
|
wx
.
ALL
)
vbox
.
Add
(
self
.
log_text
,
proportion
=
1
,
flag
=
wx
.
EXPAND
|
wx
.
ALL
)
self
.
SetSizerAndFit
(
vbox
)
self
.
SetSizerAndFit
(
vbox
)
self
.
SetSize
(
self
.
settings
.
size
)
self
.
SetSize
(
self
.
settings
.
size
)
self
.
Centre
()
self
.
Centre
()
self
.
Show
(
True
)
self
.
Show
(
True
)
# 实例化log模块,绑定输出到log显示区域
self
.
logger
=
LogUtils
.
sharedInstance
(
'1'
)
LogUtils
.
sharedInstance
(
'nrfx_tool'
).
set_ctrl_to_logging
(
self
.
log_text
)
self
.
logger
.
set_logger
(
'nrfx_tool'
,
'logs'
)
print
(
self
.
nb
.
GetSize
())
print
(
self
.
nb
.
GetSize
())
def
log_clear_btn_handler
(
self
,
e
):
self
.
log_text
.
Clear
()
def
main
():
def
main
():
app
=
wx
.
App
()
app
=
wx
.
App
()
...
...
log_utils.py
0 → 100644
浏览文件 @
a8812542
# -*- coding:utf-8 -*-
import
wx
import
logging
import
os
import
time
from
pathlib
import
Path
class
TextHandler
(
logging
.
Handler
):
def
__init__
(
self
)
->
None
:
logging
.
Handler
.
__init__
(
self
)
self
.
ctrl
=
None
def
set_ctrl
(
self
,
ctrl
):
self
.
ctrl
=
ctrl
def
emit
(
self
,
record
):
if
not
self
.
ctrl
==
None
:
wx
.
CallAfter
(
self
.
ctrl
.
write
,
self
.
format
(
record
)
+
"
\n
"
)
class
LogUtils
(
object
):
log
=
None
# 实现一个静态方法实例
@
staticmethod
def
sharedInstance
(
task_id
):
if
LogUtils
.
log
==
None
:
LogUtils
.
log
=
LogUtils
(
task_id
)
return
LogUtils
.
log
def
__init__
(
self
,
task_id
)
->
None
:
self
.
logger
=
logging
.
getLogger
(
task_id
)
self
.
level
=
logging
.
INFO
self
.
fmt
=
logging
.
Formatter
(
'%(asctime)s %(levelname)s: %(message)s'
)
self
.
text_ctrl
=
None
self
.
text_handler
=
TextHandler
()
def
set_logger
(
self
,
task_id
,
log_path
,
log_name
=
''
):
'''log目录设置'''
if
not
os
.
path
.
exists
(
log_path
):
os
.
makedirs
(
log_path
)
if
log_name
==
''
:
log_name
=
'%s_%s.log'
%
(
task_id
,
int
(
time
.
time
()))
logs_folder
=
Path
(
log_path
)
logs_path
=
logs_folder
/
log_name
print
(
logs_path
)
# 文件句柄
fh
=
logging
.
FileHandler
(
logs_path
)
# 设置格式
fh
.
setFormatter
(
self
.
fmt
)
# 添加文件输出流
self
.
logger
.
addHandler
(
fh
)
# 输出到控制台
sh
=
logging
.
StreamHandler
()
# 设置格式
sh
.
setFormatter
(
self
.
fmt
)
# 添加标准输出流
self
.
logger
.
addHandler
(
sh
)
# 自定义log重定向
self
.
logger
.
addHandler
(
self
.
text_handler
)
self
.
logger
.
setLevel
(
logging
.
INFO
)
self
.
logger
.
info
(
u
'Logging start.
\n
'
)
def
info
(
self
,
s
):
self
.
logger
.
info
(
s
)
def
set_ctrl_to_logging
(
self
,
text_ctrl
):
self
.
text_ctrl
=
text_ctrl
if
not
self
.
text_handler
==
None
:
self
.
text_handler
.
set_ctrl
(
self
.
text_ctrl
)
programmer.py
浏览文件 @
a8812542
import
wx
import
wx
from
log_utils
import
LogUtils
from
settings
import
Settings
from
settings
import
Settings
...
@@ -9,6 +10,9 @@ class Programmer(wx.Panel):
...
@@ -9,6 +10,9 @@ class Programmer(wx.Panel):
self
.
_init_ui
()
self
.
_init_ui
()
# 实例化log模块
self
.
logger
=
LogUtils
.
sharedInstance
(
'2'
)
def
_init_ui
(
self
):
def
_init_ui
(
self
):
# 最底层水平布局vbox
# 最底层水平布局vbox
self
.
vbox
=
wx
.
BoxSizer
(
wx
.
VERTICAL
)
self
.
vbox
=
wx
.
BoxSizer
(
wx
.
VERTICAL
)
...
@@ -176,9 +180,17 @@ class Programmer(wx.Panel):
...
@@ -176,9 +180,17 @@ class Programmer(wx.Panel):
self
.
setting_sbox_sizer
.
Add
(
self
.
setting_gbs
)
self
.
setting_sbox_sizer
.
Add
(
self
.
setting_gbs
)
#------------------------------------------------
#------------------------------------------------
#------------------------------------------------
# 按键绑定
self
.
erase_all_btn
.
Bind
(
wx
.
EVT_BUTTON
,
self
.
_erase_all_btn_handler
)
#------------------------------------------------
self
.
vbox
.
Add
(
self
.
file_sbox_sizer
)
self
.
vbox
.
Add
(
self
.
file_sbox_sizer
)
self
.
vbox
.
Add
(
self
.
setting_sbox_sizer
)
self
.
vbox
.
Add
(
self
.
setting_sbox_sizer
)
self
.
SetSizerAndFit
(
self
.
vbox
)
self
.
SetSizerAndFit
(
self
.
vbox
)
print
(
self
.
file_sbox
.
GetSize
())
print
(
self
.
file_sbox
.
GetSize
())
print
(
self
.
setting_sbox
.
GetSize
())
print
(
self
.
setting_sbox
.
GetSize
())
def
_erase_all_btn_handler
(
self
,
e
):
self
.
logger
.
info
(
'_erase_all_btn_handler'
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录