16# if defined(_WIN32) && ALIB_DEBUG
21namespace alib {
namespace lox {
23using namespace detail;
42 static bool recursion=
false;
50 ALIB_WARNING(
"ALOX",
"Log::AddDebugLogger(): called twice." )
57 #if defined(_MSC_VER) && ALIB_DEBUG
61 {ALIB_LOCK_WITH(ALOX.GetConfigLock())
62 Variable variable(ALOX, Variables::NO_IDE_LOGGER );
63 createIDELogger= variable.IsNotDefined() || (variable.GetBool() == false);
67 IDELogger= new VStudioLogger(
"IDE_LOGGER");
70 lox->SetVerbosity( IDELogger, Verbosity::Verbose,
"/" );
71 lox->SetVerbosity( IDELogger, Verbosity::Warning, Lox::InternalDomains );
80 lox->SetVerbosity( DebugLogger, Verbosity::Verbose );
82 lox->SetVerbosity( DebugLogger, Verbosity::Warning,
"/ALIB" );
89 Box replacements[2]= {
"LOG",
"DEBUG_LOGGER" };
91 if( variable.IsNotDefined() )
93 (void) variable.Define();
94 variable.Get<CVVerbosities>().ExportAll=
true;
118 "Log::RemoveDebugLogger(): no debug logger to remove." )
128 #if defined(_WIN32) && ALIB_DEBUG
146 "Log::AddReportWriter(): ALoxReportWriter already created." )
threads::SharedLock & GetConfigLock()
ALIB_API void PushWriter(ReportWriter *newWriter)
ALIB_API void PopWriter(ReportWriter *checkWriter)
static Report & GetDefault()
ALIB_API bool IsDebuggerPresent()
static ALIB_API void AddDebugLogger(Lox *lox)
static ALIB_API ALoxReportWriter * DebugReportWriter
static ALIB_API void RemoveDebugLogger(Lox *lox)
static ALIB_API textlogger::TextLogger * DebugLogger
The debug logger created by AddDebugLogger.
static ALIB_API textlogger::TextLogger * IDELogger
An (additional) IDE specific logger, that might be created by AddDebugLogger.
static ALIB_API void RemoveALibReportWriter()
Removes the report writer created with AddALibReportWriter.
static ALIB_API void AddALibReportWriter(Lox *lox)
This class acts as a container for Loggers and provides a convenient interface to logging.
bool RemoveLogger(detail::Logger *logger)
static ALIB_API textlogger::TextLogger * CreateConsoleLogger(const NString &name=nullptr)
static constexpr NString InternalDomains
static TDerivedClass & GetSingleton()
#define ALIB_WARNING(...)
#define ALIB_ASSERT_WARNING(cond,...)
#define ALIB_LOCK_WITH(lock)
@ CONSOLE_LIGHT_COLORS
Denotes configuration variable ALOX/CONSOLE_LIGHT_COLORS used by colorful specializations of class Te...
@ VERBOSITY
Denotes configuration variable ALOX/LOGGERNAME/VERBOSITY_WITH_LOXNAME.
@ DOMAIN_SUBSTITUTION
Denotes configuration variable ALOX/LOXNAME/DOMAIN_SUBSTITUTION used by class Lox.
@ DUMP_STATE_ON_EXIT
Denotes configuration variable ALOX/LOXNAME/DUMP_STATE_ON_EXIT used by class Lox.
@ SPTR_LOX
Denotes configuration variable ALOX/LOXNAME/SOURCE_PATH_TRIM_RULES used by class Lox.
@ PREFIXES
Denotes configuration variable ALOX/LOXNAME/PREFIXES used by class Lox.
lox::ALoxCamp ALOX
The singleton instance of ALib Camp class ALoxCamp.
lox::ALoxReportWriter ALoxReportWriter
Type alias in namespace alib.
lang::basecamp::BaseCamp BASECAMP
The singleton instance of ALib Camp class BaseCamp.
lox::textlogger::TextLogger TextLogger
Type alias in namespace alib.
lox::loggers::AnsiConsoleLogger AnsiConsoleLogger
Type alias in namespace alib.