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

这类似于这个问题,它涉及一个bash文件 。

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

private Log log = LogFactory.getLog(xyz.class); 

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

 log.info("Setting browser..."); this.browser = browser; log.info("Completed."); 

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

 Setting browser... Completed. 

我想在同一行打印出来:

 Setting browser... 

几毫秒后:

 Setting browser...Completed. 

这可能与LogFactory一起使用吗?

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

java.util.logging (和Log4J )框架允许您插入格式化程序来格式化语句。 您需要指定一个不以换行符结尾的格式。 例如,在Log4J中 。 他们给出了一个示例模式

  %-5p [%t]: %m%n 

因此,如果删除 %m 之外所有内容%n是换行符,其他内容包括时间和日志级别,我认为分别为%t%p ),则新行不会自动附加到每个语句。

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

 log.info("I want this on one line\n"); 

单独留下日志。 如果您希望它更具可读性,请对其进行后期处理。

除非您小心,否则使用日志文件会丢失信息。 以时间戳为例。 如果您的Setting browswer..日志语句包含时间戳,则将completed语句放在没有时间戳的情况下是信息丢失,并且在同一行上有两个时间戳似乎并不自然。