如何使用Poco :: Logger记录unicode字符串?

时间:2017-04-27 12:00:23

标签: c++ logging poco-libraries

我正在使用POCO C ++库版本 1.7.5 从数据库加载一些记录并使用POCO logger实用程序将它们记录在文件中。其中一个字符串记录采用unicode格式,我保存在std::wstring中。我找不到如何使用POCO记录器记录std::wstring

Poco::Logger logger;
std::wstring gameName;
...
logger.information("GameName: %s", gameName.c_str());

结果是:

2017-04-27 11:47:28.438 - GameName: [ERRFMT]

如何正确记录std::wstring

2 个答案:

答案 0 :(得分:1)

Poco不直接支持wstring日志记录,并且Poco的private void loadConfig() { this.getConfig().options().copyDefaults(true); this.saveConfig(); } 函数使用类型安全格式。

请参见format

但是Poco具有UnicodeConverter类。

因此您可以通过 import sklearn import numpy as np from mlxtend.plotting import plot_confusion_matrix import matplotlib.pyplot as plt y_pred = model.predict(X_test) Y_pred_classes = np.argmax(y_pred,axis=1) Y_true = np.argmax(Y_test,axis=1) confusion_mtx = sklearn.metrics.confusion_matrix(Y_true, Y_pred_classes) plot_confusion_matrix(confusion_mtx, class_names = allCategories() ) format转换为std::wstring,例如:

std::string

我希望这会有所帮助。

答案 1 :(得分:0)

假设logger.information();与printf有效,你可以试试%ls

表示字符串:

logger.information("GameName: %ls", gameName);

表示char:

logger.information("GameName: %lc", gameName);