apache commons 日志记录中的打印格式

print format in apache commons logging

下面使用log4j。

我该怎么做,格式化或通配符之类的东西:

System.out.printf('%s', 5)

log.info('%s', 5) //org.apache.commons.logging.Log instance

版本:commons-logging-1.1.3.jar。

上面提到的 API 的缺点是:

它只有方法 info(object)info(object, throwable)

或者日志没有在那里进化??

是的,可以在 "slf4j" 中实现。尝试使用以下快照-

log.info("My name is %s %s",firstName,secondName)

LOG.debug("WidgetName:{}\n curWidgetVOArray=\n",curWidgetName, curWidgetVOArray);

参考 - http://javarevisited.blogspot.in/2013/08/why-use-sl4j-over-log4j-for-logging-in.html

log4j2 中包含您要查找的功能:

http://www.apache.org/dyn/closer.cgi/logging/log4j/2.1/apache-log4j-2.1-bin.zip

您必须包含至少两个 jar 文件:

  • log4j-api-2.1.jar
  • log4j-core-2.1.jar

最后将名为 "log4j2.xml" 的配置文件放入您的类路径中,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

配置完成后,您应该可以通过以下代码实现您想要的效果:

Logger log = LogManager.getLogger(YOURCLASSNAME.class);
log.printf(Level.INFO,"%s",5);

这可能是最简单的方法

log.info(String.format("%s", 5));