Make GnuTLS log level dependent on the aria2 ones

Closes GH-180
pull/186/head
Nils Maier 2014-01-06 15:53:33 +01:00
parent 7777e1cb37
commit 3194174d4b
3 changed files with 27 additions and 1 deletions

View File

@ -37,6 +37,10 @@
#include "prefs.h"
#include "RecoverableException.h"
#ifdef HAVE_LIBGNUTLS
# include <gnutls/gnutls.h>
#endif // HAVE_LIBGNUTLS
namespace aria2 {
std::string LogFactory::filename_ = DEV_NULL;
@ -57,6 +61,21 @@ void LogFactory::openLogger(const std::shared_ptr<Logger>& logger)
logger->setConsoleOutput(consoleOutput_);
}
void LogFactory::adjustDependentLevels() {
auto level = consoleLogLevel_;
if (filename_ != DEV_NULL) {
level = std::min(level, logLevel_);
}
#ifdef HAVE_LIBGNUTLS
if (level == Logger::A2_DEBUG) {
gnutls_global_set_log_level(10);
}
else {
gnutls_global_set_log_level(0);
}
#endif
}
void LogFactory::reconfigure()
{
if(logger_) {
@ -89,6 +108,7 @@ void LogFactory::setLogFile(const std::string& name)
} else {
filename_ = name;
}
adjustDependentLevels();
}
namespace {
@ -113,21 +133,25 @@ Logger::LEVEL toLogLevel(const std::string& level)
void LogFactory::setLogLevel(Logger::LEVEL level)
{
logLevel_ = level;
adjustDependentLevels();
}
void LogFactory::setLogLevel(const std::string& level)
{
logLevel_ = toLogLevel(level);
adjustDependentLevels();
}
void LogFactory::setConsoleLogLevel(Logger::LEVEL level)
{
consoleLogLevel_ = level;
adjustDependentLevels();
}
void LogFactory::setConsoleLogLevel(const std::string& level)
{
consoleLogLevel_ = toLogLevel(level);
adjustDependentLevels();
}
void LogFactory::release() {

View File

@ -54,6 +54,8 @@ private:
static void openLogger(const std::shared_ptr<Logger>& logger);
static void adjustDependentLevels();
LogFactory();
public:
/**

View File

@ -132,7 +132,7 @@ bool Platform::setUp()
}
gnutls_global_set_log_function(gnutls_log_callback);
gnutls_global_set_log_level(10);
gnutls_global_set_log_level(0);
}
#endif // HAVE_LIBGNUTLS