在Appium测试中,如何让Eclipse控制台仅显示System.out.print输出?
让Eclipse控制台仅显示自定义System.out输出的方法
当然可行,以下是几种实用的解决办法:
方法1:通过日志框架关闭非自定义输出
Appium的测试日志通常是通过Log4j、SLF4J这类日志框架输出的,和你用System.out.print的输出流相互独立。你可以修改日志配置文件,将框架日志的输出级别调至最高或直接关闭:
- 如果项目用Log4j,修改
log4j.properties:# 关闭根日志器,阻止所有框架日志输出到控制台 log4j.rootLogger=OFF - 如果是Logback,修改
logback.xml,将控制台appender的日志级别设置为一个不存在的级别,或者直接移除控制台输出的appender。
方法2:用Eclipse控制台过滤器精准筛选
Eclipse自带控制台过滤功能,可以直接过滤掉不需要的日志行:
- 打开控制台视图,点击右上角的漏斗图标(过滤器)
- 勾选「启用过滤器」,然后添加过滤规则:
- 选择「排除所有包含以下字符串的行」,添加Appium日志常见的前缀(比如
[Appium]、[HTTP]、[WD Proxy]等) - 如果你自己的输出有固定前缀(比如
[MyTestLog]),也可以选择「仅包含包含以下字符串的行」,只保留你的自定义输出
- 选择「排除所有包含以下字符串的行」,添加Appium日志常见的前缀(比如
方法3:重定向System.err到文件
很多Appium的运行日志会输出到System.err而非System.out,你可以把System.err的内容重定向到文件,只留System.out在控制台显示:
- 在测试代码的入口处添加以下代码:
import java.io.FileOutputStream; import java.io.PrintStream; public class TestSetup { static { try { // 将System.err输出到指定文件 System.setErr(new PrintStream(new FileOutputStream("appium_logs.log"))); } catch (Exception e) { e.printStackTrace(); } } }
内容的提问来源于stack exchange,提问作者Zidaya
相关产品推荐
相关产品推荐

