参考

反馈问题时如何提交日志

开启服务端与 TSF 端的 debug 日志、让它生效、复现问题、找到并打包日志文件,以及提交前必须知道的隐私注意事项

v0.121.0

绝大多数输入问题,只看描述判断不出原因——一份 debug 级别的日志能省掉十轮来回。本页是完整流程:开日志 → 生效 → 复现 → 收集 → 发送 → 调回去。

先读这一条:debug 日志会记录你输入了什么

debug / trace 级别的日志包含按键序列、候选内容、当前焦点程序名等信息。你在复现期间打的字,基本都会落在文件里。

因此:只在排查时临时开启,复现完立即调回;发送时优先用私聊(论坛私信、QQ 私聊),不要贴到公开帖子、公开 issue 或群聊里。详见发送日志时的隐私注意

升级后的异常先重启电脑

升级安装后出现不生效、候选窗不出、输入错乱,多半是新旧 DLL 混用。先重启电脑再看问题还在不在,在的话再来开日志。见常见问题

第一步:开启日志

打开设置工具 → 高级 → 页面最下方的 日志设置。这里有三个独立的级别开关:

管谁出厂反馈时建议
输入法服务日志级别后台主服务(候选、词库、排序、配置都在这里)info调到 debug
TSF 端日志级别加载进各个程序里的输入法 DLL(吃键、组合区、候选窗定位、宿主兼容)关闭调到 debug
设置程序日志级别设置工具自己info只有设置界面本身出问题时才需要提级

反馈输入相关的问题时,前两项都要开,且至少 debug

  • info 只记大事,看不到按键怎么走、候选怎么来的,基本定位不了问题
  • trace 更详细,但量大、会拖慢输入;一般先给 debug,被要求时再上 trace

为什么是三个开关,不能一次改完

三个模块的日志级别必须在各自启动那一刻就读得到:服务读 config.toml,设置程序读自己的配置,而 TSF DLL 在被宿主进程加载的一瞬间(DllMain)就要把日志支起来——那时它跟服务的通道还没建立,等推送过来,最该看的启动那一段已经过去了。所以它单独读日志目录下的 tsf_log_config 文件。

三个模块的落点不同,但日志都写在同一个 logs 目录下,所以"打开日志目录"只有一个入口。

选到 debug / trace 后,这一屏顶部会多出一条橙色隐私提示——那是这页唯一需要停下来看的一句。

第二步:让它生效(必须重启)

日志级别改完不会立刻生效,各自的生效条件也不一样:

改了哪项要重启什么
输入法服务日志级别重启输入法服务功能主菜单 → 重启服务("重载配置"不够,日志通道要重建)
TSF 端日志级别重启出问题的那个程序(浏览器、Word、QQ……)。DLL 常驻在宿主进程里,不重启它就还在用旧级别
设置程序日志级别关掉设置工具重新打开

TSF 端最容易漏

「我开了日志但 tsf_log 目录是空的」几乎都是这一条:改完级别没重启目标程序。如果那个程序有后台常驻(浏览器的后台进程、聊天软件的托盘),要彻底退出再启动,不只是关窗口。

第三步:复现问题

重启到位后,再去把问题复现一遍,并记下:

  1. 哪个程序里(精确到程序名,浏览器还要说是哪个页面/输入框)
  2. 用的是哪个方案(拼音 / 五笔 / 混输……)
  3. 打了哪些键、期望出什么、实际出了什么
  4. 大致的时间点(有助于在日志里定位那一段)

复现期间尽量不要打无关的内容——既缩短日志,也少泄露隐私。

顺手可以再补两样取证材料:

  • 窗口截图功能主菜单 → 高级 → 「截图所有窗口到文件」,把候选窗、工具栏等逐个存成 PNG(也有热键 Ctrl+Shift+F11,见快捷键
  • 输入诊断 HUD:菜单 → 高级 → 勾选「输入诊断 HUD」,实时显示当前焦点程序的输入状态与禁用原因。「这个程序里输入法完全没反应」类问题,HUD 的一张截图往往比日志还直接。见功能主菜单 · 输入诊断 HUD

第四步:找到日志文件

最省事的入口:设置工具 高级 → 日志设置 → 日志目录 的「打开」按钮,或功能主菜单 → 高级 → 「打开日志目录」。

目录位置:

版本日志目录
安装版(Windows)%LOCALAPPDATA%\WindInput\logs\
便携版<解压目录>\userdata\logs\
macOS~/Library/Application Support/WindInput/logs/

里面的结构:

logs\
├── wind_input.1.log              ← 服务日志,.1 恒为最新(正在写的那份)
├── wind_input.2.log              ← 更旧
├── startup_stage.log             ← 服务启动轨迹
├── wind_setting.1.log            ← 设置程序日志
└── tsf_log\                      ← TSF 端日志(每个宿主进程一份)
    ├── wind_tsf.chrome.12345.log
    ├── wind_tsf.WINWORD.6789.log
    └── wind_tsf.explorer.4321.log

两个容易搞错的点:

  • 服务日志:数字越小越新,.1 就是当前这份 0.121 新增。不要只发编号最大的那个(那是最旧的),见日志文件的序号
  • TSF 日志:文件名是 wind_tsf.<程序名>.<进程号>.log,按"用过的宿主 × 进程"生成,可能有几十个。要发的是出问题那个程序对应的那一份;同一程序有多个进程号时,按修改时间最新的挑,拿不准就把整个 tsf_log 目录一起打包

该提交哪些

必交说明
wind_input.1.log服务日志(问题跨了多次重启时,把 .2 .3 也带上)
tsf_log\wind_tsf.<出问题的程序>.*.logTSF 端日志;不确定就整个 tsf_log 目录
问题描述第三步记下的那四条:程序、方案、按键、现象
按需说明
startup_stage.log服务起不来、启动慢时
wind_setting.1.log设置界面本身出问题时
窗口截图 / HUD 截图显示位置、候选窗外观、"没反应"类问题
版本号设置工具「关于」页,或托盘菜单里可见

最简单的做法:把整个 logs 目录打包成一个 zip 发出来,缺文件的风险最小——但打包前请先读下一节。

macOS 上没有 TSF 端

macOS 的输入法层是 IMKit,日志随主程序走,没有单独的 TSF 开关与 tsf_log 目录。那边只需要开「输入法服务日志级别」。见 macOS 版

第五步:发送日志(隐私)

debug 及以上级别的日志里有你输入的内容。 除了按键与候选,还可能包含当前程序名、窗口标题这类上下文。日志文件是纯文本,谁拿到都能直接看。

因此:

  1. 优先私聊发送 —— 社区论坛的私信(点对方头像 → 「发私信」),或 QQ 群里私聊,不要在公开帖子、群聊、公开 issue 里直接甩文件
  2. 发之前自己扫一眼 —— 用记事本打开日志搜一下账号、密码、聊天内容之类的关键词;复现时如果不慎打了敏感内容,删掉那几行再发,或干脆清空日志重新复现一次
  3. 公开渠道只贴片段 —— 非要在公开处讨论时,只粘贴与问题直接相关的那几行,并手工抹掉其中的文本内容
  4. 发完记得删 —— 对方拿到后,本机的日志也可以清掉

私聊挡住的是对话,不是文件

论坛私信只保证别人看不到这段对话。附件本身仍然存放在论坛的公开文件路径下,拿到那条链接的人(哪怕没登录)就能下载。文件名带一长串时间戳和随机数,别人猜不出来,但那是「猜不到」,不是「进不去」。

所以上面第 2 条不能省:私聊不等于加密,真正敏感的内容要在发送前就删掉,而不是指望私聊这层。QQ 私聊同理。

密码不会被记进日志,但别依赖这一点

输入法默认开启「密码框强制英文」,检测到密码输入框时会抑制中文输入。但这依赖对宿主程序的识别,并非所有程序都能识别成功。复现问题期间请避开登录、支付这类操作。

第六步:调回去

排查完(或对方说日志够了),回设置工具 高级 → 日志设置

  • 输入法服务日志级别 → 调回 info
  • TSF 端日志级别 → 调回 关闭
  • 同样需要重启服务 / 重启相关程序才真正停下来

debug / trace 日志量大、写盘频繁,长期开着会拖慢输入,也在持续积累含输入内容的文件。排查完一定要调回去。

需要彻底不留日志时,服务端可选 关闭 档:那是真的一个文件都不建(不是建了但为空),连 startup_stage.log 也停写。

附:手工开启 TSF 日志

设置工具打不开、或者要在设置工具够不着的场景(如 AppContainer 沙箱里的应用商店程序)里开日志时,可以直接编辑日志目录下的 tsf_log_config 文件(没有就新建,无扩展名):

mode=file
level=debug
取值说明
modenone / file / debugstring / all记不记、记到哪。none = 不记;file = 写进 tsf_log\debugstring 需配合 DebugView.exe 查看
levelerror / warn / info / debug / trace详细程度。mode=none 时这行不起作用
dump_hotkey0 / 1Ctrl+Shift+F12 导出环形缓冲日志,出厂关闭 0.121 新增。开着会让这个键始终到不了宿主程序(它在 VS / JetBrains 里是有主的快捷键),排查完记得关

改完同样要重启目标程序才生效。设置工具里的「TSF 端日志级别」改的就是这个文件,两边等价;设置工具写回时逐行保留你手写的其他内容,不会把 dump_hotkey 这类开关抹掉。

日志文件本身支持外部改动:删掉文件或整个 tsf_log 目录,一秒内自动重建,不必重启宿主;想从干净状态重新复现时,直接清空文件即可。

本页目录