85 boost::log::add_common_attributes();
88 boost::log::keywords::channel = DOWNLOAD_MANAGER_CHANNEL,
89 boost::log::keywords::severity = lvl);
92 auto sink = boost::log::add_file_log(
93 boost::log::keywords::file_name = path.toStdString(),
94 boost::log::keywords::auto_flush =
true
97 sink->set_formatter(&my_formatter);
101 boost::log::expressions::attr<std::string>(
"Channel") == DOWNLOAD_MANAGER_CHANNEL
110 if (_lg !=
nullptr) {
111 auto rec = _lg->open_record(boost::log::keywords::severity = lvl);
113 boost::log::record_ostream strm(rec);
114 strm << msg.toStdString();
116 _lg->push_record(boost::move(rec));
122 auto msg = msgList.join(
" ");
126 void log(
Logger::Level lvl,
const QString& msg, QMap<QString, QString> map) {
127 auto fmtMsg = msg.arg(toString(map));
131 void log(
Logger::Level lvl,
const QString& msg, QMap<QString, QVariant> map) {
132 auto fmtMsg = msg.arg(toString(map));
136 void log(
Logger::Level lvl,
const QString& msg, DownloadStruct downStruct) {
139 list <<
"\n\t\tUrl: " << downStruct.getUrl()
140 <<
"\n\t\tHash Algorithm: '" << downStruct.getAlgorithm() <<
"'"
141 <<
"\n\t\tMetadata: " << toString(downStruct.getMetadata())
142 <<
"\n\t\tHeaders: " << toString(downStruct.getHeaders());
144 auto fmtMsg = msg.arg(list.join(
""));
149 QString toString(QMap<QString, QString> map) {
152 int index = map.keys().count();
153 foreach(
const QString& key, map.keys()) {
154 list <<
"'" << key <<
"': '" << map[key] <<
"'";
161 return list.join(
"");
164 QString toString(QVariantMap map) {
167 int index = map.keys().count();
168 foreach(
const QString& key, map.keys()) {
169 list <<
"'" << key <<
"': '"
170 << map[key].toString() <<
"'";
177 return list.join(
"");
184LoggerPrivate* Logger::_private =
new LoggerPrivate();
185QMutex Logger::_mutex;
190 _private->init(lvl, path);
196 _private->log(lvl, msg);
201 _private->log(lvl, msg);
205Logger::log(Level lvl,
const QString& msg, QMap<QString, QString> map) {
206 _private->log(lvl, msg, map);
210Logger::log(Level lvl,
const QString& msg, QMap<QString, QVariant> map) {
211 _private->log(lvl, msg, map);
215Logger::log(Level lvl,
const QString& msg, DownloadStruct downStruct) {
216 _private->log(lvl, msg, downStruct);