必须用"/*.log": true,否则静默失效;路径须以/开头、用正斜杠、值为true,临时排除在搜索面板"Files to exclude"中设置且优先级更高。

search.exclude 里必须写 **/*.log,否则不生效
VSCode 的全局搜索(Ctrl+Shift+F)默认会扫所有文件,包括 .log 文件——它不会自动读 .gitignore,也不继承 files.exclude,只认 search.exclude 字段,且只接受 glob 模式。写成 *.log 或 .log 都无效:*.log 只匹配工作区根目录下的日志;.log 不是合法 glob,整条规则被静默丢弃。
正确写法只有一个:"**/*.log": true。其中 **/ 表示“任意深度子目录”,* 匹配文件名任意字符,.log 是字面量后缀。这个模式才能真正覆盖 src/api.log、logs/error.log、temp/app-2026.log 等所有位置。
-
"*.log": true→ 只排除根目录下foo.log,src/foo.log仍会被搜到 -
"**/logs/**": true→ 排除整个logs/目录(含子目录),但不处理散落在各处的单个.log文件 -
"**/*.log": true→ ✅ 覆盖所有层级、所有命名的.log文件
临时排除 log 文件?直接填进搜索面板的 Files to exclude
不想改配置、只想这次搜的时候跳过日志?打开搜索面板后,点右上角 ⋯ → «Files to exclude»,输入 **/*.log 即可立即过滤。这个输入框的优先级高于 search.exclude,关掉面板就自动清空,不影响下次搜索。
多个规则用英文逗号分隔,不能有空格:
- ✅
**/*.log,**/dist/** - ❌
**/*.log, **/dist/**(空格导致第二条失效) - ⚠️ 如果搜出来不该出现的
.log,第一反应就是点开这个输入框看是否非空
为什么 search.exclude 和 files.exclude 不能混用?
files.exclude 控制左侧资源管理器和 Ctrl+P 快速打开,对全局搜索 完全无效。很多人配了 "**/*.log": true 在 files.exclude 里,结果 Ctrl+Shift+F 还是一堆日志弹出来——这不是 VSCode bug,是配错了字段。
二者必须分开配:
- 想在资源管理器里也隐藏
.log文件?加到files.exclude - 只想让搜索不扫日志?只加到
search.exclude - 两者都加?没问题,但得写两遍,结构都是对象,值都为
true
Windows 下路径写反斜杠 会彻底失效
哪怕你在 Windows 系统上,VSCode 的 search.exclude 也强制要求正斜杠 /。写成 ***.log 或 logs*.log,VSCode 直接忽略整条规则,不报错、不提示、静默跳过。
所有路径都必须用 /,且以 **/ 开头才可靠:
- ✅
"**/*.log": true - ✅
"**/logs/**": true - ❌
"**\*.log": true - ❌
"logs\*.log": true
容易被忽略的是:这个限制不随系统自动适配,复制别人配置时若混入反斜杠,就等于没配。











