如何在Java中继续登录同一行?

ris*_*raj 6 java logging testng

这类似于这个问题,它是关于一个bash文件.

我们创建了一个日志,在我们运行TestNG测试时输出到控制台:

private Log log = LogFactory.getLog(xyz.class);
Run Code Online (Sandbox Code Playgroud)

稍后,在测试期间,日志中充满了详细信息,以便让我们知道到底在做什么:

log.info("Setting browser...");
this.browser = browser;
log.info("Completed.");
Run Code Online (Sandbox Code Playgroud)

现在它按照您的预期打印出来:

Setting browser...
Completed.
Run Code Online (Sandbox Code Playgroud)

我想在同一行打印出来:

Setting browser...
Run Code Online (Sandbox Code Playgroud)

几毫秒后:

Setting browser...Completed.
Run Code Online (Sandbox Code Playgroud)

这可能与LogFactory一起使用吗?

oxb*_*kes 7

在不知道您正在使用哪个日志库的情况下,我猜测答案几乎肯定不会,除非您想在其他地方明确指定换行符.

java.util.logging(和Log4J)框架,让您插件格式化来格式化报表.您需要指定一个不以换行符结尾的格式.例如,在Log4J中.他们给出了一个示例模式

 %-5p [%t]: %m%n
Run Code Online (Sandbox Code Playgroud)

所以,如果你删除除一切%m(该%n是换行和其他的东西,包括时间和日志级别; %t%p分别,我想),换行符不会被自动添加到每个语句.

但是,这意味着在其他任何地方,您的其他日志语句必须如下所示:

log.info("I want this on one line\n");
Run Code Online (Sandbox Code Playgroud)