mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
refs #350 Fixed log severity and log category setting in swiftcore console.
This commit is contained in:
@@ -44,10 +44,18 @@ namespace BlackMiscTest
|
|||||||
QThread::sleep(3); // let the DBus server startup
|
QThread::sleep(3); // let the DBus server startup
|
||||||
|
|
||||||
// log
|
// log
|
||||||
//! \todo make thread safe or ..?
|
CLogSubscriber applicationMessageSubscriber, audioMessageSubscriber, networkMessageSubscriber, ownAircraftMessageSubscriber, settingsMessageSubscriber, simulatorMessageSubscriber;
|
||||||
CLogSubscriber messageSubscriber;
|
CStatusMessage::StatusSeverity messageSeverity = CStatusMessage::SeverityInfo;
|
||||||
messageSubscriber.enableConsoleOutput(true);
|
auto refreshSubscriptionSeverities = [ & ]()
|
||||||
messageSubscriber.changeSubscription(CLogPattern().withSeverityAtOrAbove(CStatusMessage::SeverityInfo));
|
{
|
||||||
|
applicationMessageSubscriber.changeSubscription(CLogPattern::allOf(runtime->getIContextApplication()).withSeverityAtOrAbove(messageSeverity));
|
||||||
|
audioMessageSubscriber.changeSubscription(CLogPattern::allOf(runtime->getIContextAudio()).withSeverityAtOrAbove(messageSeverity));
|
||||||
|
networkMessageSubscriber.changeSubscription(CLogPattern::allOf(runtime->getIContextNetwork()).withSeverityAtOrAbove(messageSeverity));
|
||||||
|
ownAircraftMessageSubscriber.changeSubscription(CLogPattern::allOf(runtime->getIContextOwnAircraft()).withSeverityAtOrAbove(messageSeverity));
|
||||||
|
settingsMessageSubscriber.changeSubscription(CLogPattern::allOf(runtime->getIContextSettings()).withSeverityAtOrAbove(messageSeverity));
|
||||||
|
simulatorMessageSubscriber.changeSubscription(CLogPattern::allOf(runtime->getIContextSimulator()).withSeverityAtOrAbove(messageSeverity));
|
||||||
|
};
|
||||||
|
refreshSubscriptionSeverities();
|
||||||
|
|
||||||
QTextStream qtout(stdout);
|
QTextStream qtout(stdout);
|
||||||
qtout << "Running on server here " << Tool::getPid() << " thread: " << QThread::currentThreadId() << endl;
|
qtout << "Running on server here " << Tool::getPid() << " thread: " << QThread::currentThreadId() << endl;
|
||||||
@@ -103,40 +111,25 @@ namespace BlackMiscTest
|
|||||||
else if (line.startsWith("level"))
|
else if (line.startsWith("level"))
|
||||||
{
|
{
|
||||||
line = line.replace("level", "").trimmed();
|
line = line.replace("level", "").trimmed();
|
||||||
CStatusMessage::StatusSeverity severity = CStatusMessage::stringToSeverity(line);
|
messageSeverity = CStatusMessage::stringToSeverity(line);
|
||||||
messageSubscriber.changeSubscription(CLogPattern().withSeverityAtOrAbove(severity));
|
refreshSubscriptionSeverities();
|
||||||
qtout << "Changed level to " << CStatusMessage::severityToString(severity) << endl;
|
qtout << "Changed level to " << CStatusMessage::severityToString(messageSeverity) << endl;
|
||||||
}
|
}
|
||||||
else if (line.startsWith("log"))
|
else if (line.startsWith("log"))
|
||||||
{
|
{
|
||||||
line.replace("log", "");
|
line.replace("log", "");
|
||||||
bool enable = line.endsWith("e");
|
bool enable = line.endsWith("e");
|
||||||
if (line.startsWith("all"))
|
if (line.startsWith("app") || line.startsWith("all")) { applicationMessageSubscriber.enableConsoleOutput(enable); }
|
||||||
{
|
if (line.startsWith("aud") || line.startsWith("all")) { audioMessageSubscriber.enableConsoleOutput(enable); }
|
||||||
QMetaObject::invokeMethod(CLogHandler::instance(), "enableConsoleOutput", Q_ARG(bool, enable));
|
if (line.startsWith("net") || line.startsWith("all")) { networkMessageSubscriber.enableConsoleOutput(enable); }
|
||||||
}
|
if (line.startsWith("own") || line.startsWith("all")) { ownAircraftMessageSubscriber.enableConsoleOutput(enable); }
|
||||||
else
|
if (line.startsWith("set") || line.startsWith("all")) { settingsMessageSubscriber.enableConsoleOutput(enable); }
|
||||||
{
|
if (line.startsWith("sim") || line.startsWith("all")) { simulatorMessageSubscriber.enableConsoleOutput(enable); }
|
||||||
CLogCategoryList categories;
|
|
||||||
if (line.startsWith("app")) { categories = runtime->getIContextApplication(); }
|
|
||||||
else if (line.startsWith("aud")) { categories = runtime->getIContextAudio(); }
|
|
||||||
else if (line.startsWith("net")) { categories = runtime->getIContextNetwork(); }
|
|
||||||
else if (line.startsWith("own")) { categories = runtime->getIContextOwnAircraft(); }
|
|
||||||
else if (line.startsWith("set")) { categories = runtime->getIContextSettings(); }
|
|
||||||
else if (line.startsWith("sim")) { categories = runtime->getIContextSimulator(); }
|
|
||||||
if (! categories.isEmpty())
|
|
||||||
{
|
|
||||||
BlackMisc::singleShot(0, BlackMisc::CLogHandler::instance()->thread(), [ = ]()
|
|
||||||
{
|
|
||||||
BlackMisc::CLogHandler::instance()->handlerForPattern(CLogPattern::allOf(categories))->enableConsoleOutput(enable);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (line.startsWith("h"))
|
else if (line.startsWith("h"))
|
||||||
{
|
{
|
||||||
qtout << "1) global logging:" << endl;
|
qtout << "1) logging severity levels:" << endl;
|
||||||
qtout << " levels: d, i, w, e example: level d for debug level" << endl;
|
qtout << " d, i, w, e example: level d for debug level" << endl;
|
||||||
qtout << "2) logging for contexts:" << endl;
|
qtout << "2) logging for contexts:" << endl;
|
||||||
qtout << " log + context + [e]nabled / [d]isabled" << endl;
|
qtout << " log + context + [e]nabled / [d]isabled" << endl;
|
||||||
qtout << " contexts: app / aud / net / own (aircraft) / set / sim / all" << endl;
|
qtout << " contexts: app / aud / net / own (aircraft) / set / sim / all" << endl;
|
||||||
|
|||||||
Reference in New Issue
Block a user