Merge pull request #231 from atgeirr/refine-simple-logging
Make setupSimpleDefaultLogging() more flexible.
This commit is contained in:
@@ -21,9 +21,27 @@
|
||||
#include <opm/common/OpmLog/Logger.hpp>
|
||||
#include <opm/common/OpmLog/StreamLog.hpp>
|
||||
#include <iostream>
|
||||
#include <errno.h> // For errno
|
||||
#include <stdio.h> // For fileno() and stdout
|
||||
#include <unistd.h> // For isatty()
|
||||
|
||||
namespace Opm {
|
||||
|
||||
namespace {
|
||||
bool stdoutIsTerminal()
|
||||
{
|
||||
const int errno_save = errno; // For playing nice with C error handling.
|
||||
const int file_descriptor = fileno(stdout);
|
||||
if (file_descriptor == -1) {
|
||||
// stdout is an invalid stream
|
||||
errno = errno_save;
|
||||
return false;
|
||||
} else {
|
||||
return isatty(file_descriptor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
std::shared_ptr<Logger> OpmLog::getLogger() {
|
||||
if (!m_logger)
|
||||
@@ -176,12 +194,14 @@ namespace Opm {
|
||||
|
||||
|
||||
|
||||
void OpmLog::setupSimpleDefaultLogging(const bool use_prefix)
|
||||
void OpmLog::setupSimpleDefaultLogging(const bool use_prefix,
|
||||
const bool use_color_coding,
|
||||
const int message_limit)
|
||||
{
|
||||
std::shared_ptr<StreamLog> streamLog = std::make_shared<StreamLog>(std::cout, Log::DefaultMessageTypes);
|
||||
OpmLog::addBackend( "SimpleDefaultLog", streamLog);
|
||||
streamLog->setMessageLimiter(std::make_shared<MessageLimiter>(10));
|
||||
streamLog->setMessageFormatter(std::make_shared<SimpleMessageFormatter>(use_prefix, true));
|
||||
streamLog->setMessageLimiter(std::make_shared<MessageLimiter>(message_limit));
|
||||
streamLog->setMessageFormatter(std::make_shared<SimpleMessageFormatter>(use_prefix, use_color_coding && stdoutIsTerminal()));
|
||||
}
|
||||
/******************************************************************/
|
||||
|
||||
|
||||
@@ -64,7 +64,16 @@ public:
|
||||
static void removeAllBackends();
|
||||
static bool enabledMessageType( int64_t messageType );
|
||||
static void addMessageType( int64_t messageType , const std::string& prefix);
|
||||
static void setupSimpleDefaultLogging(const bool use_prefix);
|
||||
|
||||
/// Create a basic logging setup that will send all log messages to standard output.
|
||||
///
|
||||
/// By default category prefixes will be printed (i.e. Error: or
|
||||
/// Warning:), color coding will be used, and a maximum of 10
|
||||
/// messages with the same tag will be printed. These settings can
|
||||
/// be controlled by the function parameters.
|
||||
static void setupSimpleDefaultLogging(const bool use_prefix = true,
|
||||
const bool use_color_coding = true,
|
||||
const int message_limit = 10);
|
||||
|
||||
template <class BackendType>
|
||||
static std::shared_ptr<BackendType> getBackend(const std::string& name) {
|
||||
|
||||
Reference in New Issue
Block a user