如何在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
语句放在没有时间戳的情况下是信息丢失,并且在同一行上有两个时间戳似乎并不自然。