出于测试目的,默认日志输出的行太长,难以阅读。
目前,我只想有一个缩写类并将输出提供给
log.info
并使其在 ---
符号上对齐。
我目前只是这种格式:
logging.pattern.console=%c{1} --- %m%n
我猜
%n
表示“新行”,%c
表示“类”,{1}
缩写完全限定名称(这很好)。我得到的输出是:
d.e.e.Eva04p2Beanlifecycle --- No active profile set, falling back to default profiles: default
d.e.e.s.SmallService --- doBeforeInitializing before upadating ... what's my personal name? frieda
d.e.e.s.SmallService --- doBeforeInitializing ... what's my personal name? marga
d.e.e.Eva04p2Beanlifecycle --- Started Eva04p2Beanlifecycle in 0.628 seconds (JVM running for 0.824)
d.e.e.s.SmallService --- doSomething ... what's my personal name? marga
d.e.e.s.SmallService --- doBeforeDestroying ... what's my personal name? elisa
使用这些类型的说明:
@PostConstruct
public void doBeforeInitializing() {
log.info("doBeforeInitializing before upadating ... what's my personal name? " + myPersonalName);
myPersonalName = "marga";
log.info("doBeforeInitializing ... what's my personal name? " + myPersonalName);
}
public void doSomething() {
log.info("doSomething ... what's my personal name? " + myPersonalName);
}
@PreDestroy
public void doBeforeDestroying() {
myPersonalName = "elisa";
log.info("doBeforeDestroying ... what's my personal name? " + myPersonalName);
}
我需要更改什么,以便所有
---
打印时彼此对齐?
正如上面的评论中提到的,slf4j 不控制日志输出的格式 - 这是由您正在使用的日志记录实现完成的(slf4j 只是一个外观/抽象,而不是一个实现)。在 Spring Boot 应用程序中,默认的日志记录实现是 logback,logback 的模式格式化程序支持左右填充“列”以及设置最小和最大宽度。这些格式化选项一起可以满足您的要求。
我建议您阅读文档并确定您想要的格式,而不是给您确切的格式。有很多可能的组合需要考虑,该页面甚至有示例来帮助确定您想要的组合。
logback 文档太长了。这是您正在寻找的部分。
Logback 可以配置为在固定长度字段中打印类名,通过在
%
之后添加修饰符来用空格填充其余部分。
最长类名的长度是 26。我们可以将该值添加到格式中,但这会使其右对齐,这对我来说对于此数据来说看起来不正确。
我希望此数据左对齐,因此我还添加了
-
。
您帖子中的示例:
logging.pattern.console=%c{1} --- %m%n
修改为在固定长度字段中打印类名:
logging.pattern.console=%-26c{1} --- %m%n
现在类名后面的数据将均匀对齐,因为类名都占用相同的空间:
d.e.e.Eva04p2Beanlifecycle --- No active profile set, falling back to default profiles: default
d.e.e.s.SmallService --- doBeforeInitializing before upadating ... what's my personal name? frieda
这是一个链接 logback 文档中关于固定长度字段的具体部分