#include "Poco/Logger.h"
#include "Poco/AutoPtr.h"
#include "Poco/PatternFormatter.h"
#include "Poco/FormattingChannel.h"
#include "Poco/ConsoleChannel.h"
#include "Poco/Message.h"
using namespace Poco;
int main()
{
Message msg;
msg.setSource("MySource");
msg.setText("My message text");
msg["myParam"] = "My Param";
AutoPtr<FormattingChannel> pFCConsole = new FormattingChannel(new PatternFormatter("%s: %[myParam], %t"));
pFCConsole->setChannel(new ConsoleChannel);
pFCConsole->open();
Logger& consoleLogger = Logger::root(); // or whatever your logger is
consoleLogger.setChannel(pFCConsole);
consoleLogger.log(msg);
return 0;
}
運行:
$ ./Logger
MySource: My Param, My message text
只有std::string
自定義參數,目前支持,所以你將不得不做轉換,如果值是數字。
我不熟悉POCO的日誌框架。似乎['Poco :: Logger :: setProperty()'](http://www.appinf.com/docs/poco/Poco.Logger.html#17278)_「只有」channel「和」level 「屬性被支持」_,這不是你所需要的。但是,您可以使用['Poco :: Message :: set()'](http://www.appinf.com/docs/poco/Poco.Message.html#18324)來追加所需的值追蹤。 – 865719