wfview 会写入日志文件,出现故障时查看它很有用。当你遇到程序的异常行为时,点击“日志(Log)”按钮。这就像汽车上的仪表——出问题时先看这里。在我们的支持论坛发帖时,先查看日志能省去大家一步。如果发现任何有意思的内容,可使用“send to termbin”功能,并把日志链接粘贴到论坛帖子中。这非常有用!
从 wfview 1.5 版起,程序底行有一个“日志(Log)”按钮。

点击该按钮打开日志窗口,其中会显示日志,并提供若干有用的操作:

各按钮的功能如下:
- 标注(Annotation):输入任何想要写入程序日志文件的文本。这适合做笔记,例如记录遇到的故障,或在某项操作发生前记下你正打算做什么。
- 调试(Debug):勾选此项会启用更详细的日志记录
- 向下滚动(Scroll Down):把窗口内容向下滚动;如果你已向上滚动,只想跳到末尾,这很有用
- 清除(Clear):清除显示内容。不会清除日志文件的内容。
- 打开日志目录(Open Log Directory):打开存放日志的目录。
- 打开日志(Open Log):用操作系统的文本编辑器打开日志文件。
- 复制路径(Copy Path):把日志文件的路径复制到剪贴板
- 发送到 termbin.com(Send to termbin.com):把显示的日志条目发送到 termbin.com,并给出一个 URL,你可据此访问和分享该日志文件。
关于“发送到 termbin.com(Send to termbin.com)”:点击该按钮后,日志(按当前显示内容)会被发送到 termbin.com。许多 Linux 命令都用这个网站来帮助人们分享调试信息。注意,日志文件可能包含你的用户名和 IP 地址等信息。在寻求 wfview 帮助时,点击该按钮会自动把一个 URL 复制到剪贴板,你可将其粘贴到我们支持论坛的帖子中。这是分享日志文件最简便的方法。
日志文件默认位置
可以用 wfview 中的“复制路径(Copy Path)”按钮复制日志文件路径。
- Linux:/tmp
- Windows:%TEMP%/wfview
- macOS:/private/$TMPDIR/org.wfview.wfview(可用 wfview 日志界面中的“复制路径(Copy Path)”按钮快速取得该路径)
日志文件名默认形如“wfview-yyyymmddhhmmss.log”。时间戳指程序启动的时刻。可以在启动 wfview 时指定 --logfile 参数来改变这一行为,例如:
wfview --logfile /tmp/IC-7300.log
这会使日志文件名为“/tmp/IC-7300.log”。如果未给出绝对路径,则路径相对于当前工作目录。
调试日志记录
为便于调试,可以用调试标志启动 wfview,这会使多得多的数据记入日志文件。要以调试日志启动 wfview,用 -d 标志或 --debug 运行 wfview。例如:
wfview --debug
这样做之后,日志文件会包含多得多的信息。在 macOS 下,运行以下终端命令:
cd /Applications open wfview.app --args --debug
注意,也可以在 wfview 内勾选日志窗口中的“调试(Debug)”复选框来开启调试日志记录。不过,以调试日志启动 wfview 会额外产生一些与启动流程有关的消息。
日志记录特性
wfview 启动时,首行是“INF system: Starting wfview”。每行包含当前日期、时间、日志类别与子系统标签。日志类别包括:
- INF(信息)
- DBG(调试)
- WRN(警告)
子系统(基本上就是代码中的逻辑单元)包括:
- system(wfmain.cpp)
- audio(音频处理)
- audioconverter(采样率转换、声道数、位深等)
- udpaudio(网络音频)
- udp(通过网络与电台之间的通信)
- rig(rigCommander)
- serial(伪终端与串口连接的电台)
- gui(wfmain.cpp 中与 gui 相关的部分)
- user(用户标注)
有用的日志消息:
简要列出一些值得留意的内容:
Rig-ID:电台的识别方式如下:
2021-05-15 16:38:41.230 DBG rig: ---Rig FOUND from broadcast query: 2021-05-15 16:38:41.230 INF rig: Using incomingCIVAddr: (int): 148 hex: 94 2021-05-15 16:38:41.230 INF rig: Have rig ID: decimal: 148 2021-05-15 16:38:41.230 DBG system: Rig name: "IC-7300" 2021-05-15 16:38:41.230 DBG system: Has LAN capabilities: false 2021-05-15 16:38:41.230 DBG system: Rig ID received into wfmain: spectLenMax: 475 2021-05-15 16:38:41.230 DBG system: Rig ID received into wfmain: spectAmpMax: 160 2021-05-15 16:38:41.230 DBG system: Rig ID received into wfmain: spectSeqMax: 11 2021-05-15 16:38:41.230 DBG system: Rig ID received into wfmain: hasSpectrum: true
在上例中,电台是通过广播请求(发往 CI-V 地址 0x00)识别出来的。
启用调试日志后,还可获得以下额外数据:
发往电台的数据:wfview 会记录发往电台的数据,周期性轮询的查询(如 S 表)除外。格式如下:
2021-05-15 16:38:41.267 DBG rig: Final payload in rig commander to be sent to rig: 2021-05-15 16:38:41.267 DBG rig: ---- Begin hex dump -----: 2021-05-15 16:38:41.267 DBG rig: "INDEX: 00 01 02 03 04 05 " 2021-05-15 16:38:41.267 DBG rig: "DATA: fe fe 94 e1 03 fd " 2021-05-15 16:38:41.267 DBG rig: ----- End hex dump -----
这里我们向地址 0x94 的电台请求当前频率(命令 0x03)。
来自电台的数据:wfview 会记录从电台收到的任何数据,频谱与表计数据除外,因为这类请求发生得极为频繁,记录它们会占用大量资源。格式如下:
2021-05-15 16:38:41.270 DBG rig: ---- Begin hex dump -----: 2021-05-15 16:38:41.271 DBG rig: "INDEX: 00 01 02 03 04 05 06 " 2021-05-15 16:38:41.271 DBG rig: "DATA: 03 00 20 28 07 00 fd " 2021-05-15 16:38:41.271 DBG rig: ----- End hex dump -----
可以看到,CI-V 引导码以及收/发地址部分已被剥离。此处电台正在应答频率查询请求(命令 0x03)。所示频率为 7.282000 MHz。