使用log4cplus时可以使用printf格式吗?

Can I use printf format when using log4cplus?

log4cplus 是否提供 API 以 C-Style / printf 格式打印?

原因:我想在 C 代码中使用 log4cplus(除 C++ 外)并且不想事先准备字符串。

所有日志记录宏都有一个 FMT 变体,可以满足您的期望:

LOG4CPLUS_WARN_FMT(logger, "Hello %s %d", "World", 1);

Compare/contrast 与 "default" 变体,它使用 C++ 流:

LOG4CPLUS_WARN(logger, "Hello " << "World " << 1);

还有一个 _STR 变体,如果您准备好它,可用于输出 std::string(无需支付 C++ 字符串流的开销)。

Matteo Italia's answer 是正确的。我只是补充说,如果您打算在 C 代码中使用 log4cplus,您应该看看 log4cplus/clogger.h header。但是,header 不会使通常的日志记录宏可用。您必须准备自己的宏或直接使用函数。