From b16f3a02c8a4904f75f5c10ccc7eedac845cd940 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 4 Feb 2016 19:27:44 +0100 Subject: Added a way to set logging areas and filter. --- sinksh/syntax_modules/core_syntax.cpp | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'sinksh/syntax_modules/core_syntax.cpp') diff --git a/sinksh/syntax_modules/core_syntax.cpp b/sinksh/syntax_modules/core_syntax.cpp index a05beb0..9325a7e 100644 --- a/sinksh/syntax_modules/core_syntax.cpp +++ b/sinksh/syntax_modules/core_syntax.cpp @@ -25,6 +25,7 @@ #include "state.h" #include "syntaxtree.h" #include "utils.h" +#include "common/log.h" namespace CoreSyntax { @@ -163,6 +164,38 @@ bool printLoggingLevel(const QStringList &commands, State &state) return true; } +bool setLoggingAreas(const QStringList &commands, State &state) +{ + if (commands.isEmpty()) { + state.printError(QObject::tr("Wrong number of arguments; expected logging areas.")); + return false; + } + + QByteArrayList areas; + for (const auto &c : commands) { + areas << c.toLatin1(); + } + + Sink::Log::setAreas(areas); + return true; +} + +bool setLoggingFilter(const QStringList &commands, State &state) +{ + if (commands.isEmpty()) { + state.printError(QObject::tr("Wrong number of arguments; expected resource identifier or application names.")); + return false; + } + + QByteArrayList filter; + for (const auto &c : commands) { + filter << c.toLatin1(); + } + + Sink::Log::setFilter(filter); + return true; +} + Syntax::List syntax() { Syntax::List syntax; @@ -186,6 +219,12 @@ Syntax::List syntax() logging.completer = [](const QStringList &, const QString &fragment, State &state) -> QStringList { return Utils::filteredCompletions(QStringList() << "trace" << "log" << "warning" << "error", fragment, Qt::CaseInsensitive); }; set.children << logging; + Syntax loggingAreas("loggingAreas", QObject::tr("Set logging areas."), &CoreSyntax::setLoggingAreas); + set.children << loggingAreas; + + Syntax loggingFilter("loggingFilter", QObject::tr("Set logging filter."), &CoreSyntax::setLoggingFilter); + set.children << loggingFilter; + syntax << set; Syntax get("get", QObject::tr("Gets settings for the session")); -- cgit v1.2.3