[
https://issues.apache.org/jira/browse/MINIFI-296?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16025019#comment-16025019
]
ASF GitHub Bot commented on MINIFI-296:
---------------------------------------
Github user phrocker commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/104#discussion_r118527831
--- Diff: libminifi/test/TestBase.h ---
@@ -21,35 +21,104 @@
#include <dirent.h>
#include <cstdio>
#include <cstdlib>
+#include <sstream>
#include "ResourceClaim.h"
#include "catch.hpp"
#include <vector>
-#include "core/logging/LogAppenders.h"
#include "core/logging/Logger.h"
#include "core/Core.h"
#include "properties/Configure.h"
+#include "properties/Properties.h"
+#include "core/logging/LoggerConfiguration.h"
+#include "spdlog/sinks/ostream_sink.h"
+#include "spdlog/sinks/dist_sink.h"
class LogTestController {
public:
- LogTestController(const std::string level = "debug") {
- logging::Logger::getLogger()->setLogLevel(level);
+ static LogTestController& getInstance() {
+ static LogTestController instance;
+ return instance;
}
-
- void enableDebug() {
- logging::Logger::getLogger()->setLogLevel("debug");
+
+ template<typename T>
+ void setDebug() {
+ setLevel<T>(spdlog::level::debug);
+ }
+
+ template<typename T>
+ void setInfo() {
+ setLevel<T>(spdlog::level::info);
+ }
+
+ template<typename T>
+ void setLevel(spdlog::level::level_enum level) {
+ logging::LoggerFactory<T>::getLogger();
+ std::string name = core::getClassName<T>();
+ modified_loggers.push_back(name);
+ setLevel(name, level);
+ }
+
+ bool contains(const std::string &ending) {
+ return contains(log_output, ending);
+ }
+
+ bool contains(const std::ostringstream &stream, const std::string
&ending) {
+ std::string str = stream.str();
+ logger_->log_info("Looking for %s in %s.", ending, str);
+ return (ending.length() > 0 && str.find(ending) != std::string::npos);
+ }
+
+ void reset() {
+ for (auto const & name : modified_loggers) {
+ setLevel(name, spdlog::level::err);
+ }
+ modified_loggers = std::vector<std::string>();
+ resetStream(log_output);
+ }
+
+ inline bool resetStream(std::ostringstream &stream) {
+ stream.str("");
+ stream.clear();
--- End diff --
this generates a warning.
> More configurable logging
> -------------------------
>
> Key: MINIFI-296
> URL: https://issues.apache.org/jira/browse/MINIFI-296
> Project: Apache NiFi MiNiFi
> Issue Type: Improvement
> Components: C++
> Reporter: marco polo
> Assignee: Bryan Rosander
> Priority: Minor
>
> The logging functionality would be more useful if it could be tuned on a
> per-class basis. This would allow us to set more detailed log levels for a
> place where trouble is suspected while reducing noise from other areas.
> Composable log appenders would allow us to have multiple sinks so that we
> would have a log appender that could "phone home" with information while
> concurrently logging to disk. Using a processor to do the same may be too
> onerous; however, it stands to reason that we may use the processor as the
> delivery mechanism, so we may eventually negate this issue entirely if it is
> decided that we should ship the log itself via a processor.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)