11#if !defined(HPP_ALIB_ALOX)
12# error "ALib sources with ending '.inl' must not be included from outside."
15#if !defined (HPP_ALIB_ENUMS_BITWISE)
23namespace alib {
namespace lox {
namespace detail {
65#include "alib/alox/detail/loxpimpl.inl"
67namespace alib {
namespace lox {
86 #if !defined(ALIB_DOX)
301 Priorities priority = Priorities::DefaultValues )
305 trimReplacement, reach, priority );
325 bool allowAutoRule =
true )
457 Priorities priority = Priorities::DefaultValues )
480 Priorities priority = Priorities::DefaultValues )
777 const NString& loggerName =
nullptr )
782 #if defined (__GLIBCXX__) || defined(__APPLE__)
801 #if defined( _MSC_VER )
1034 template <
typename... BoxedObjects>
1054 template <
typename... BoxedObjects>
1074 template <
typename... BoxedObjects>
1075 void Info( BoxedObjects&&... logables )
1094 template <
typename... BoxedObjects>
1114 template <
typename... BoxedObjects>
1115 void Error( BoxedObjects&&... logables )
1136 template <
typename... BoxedObjects>
1137 void Assert(
bool condition, BoxedObjects&&... logables )
1159 template <
typename... BoxedObjects>
1189 template <
typename... BoxedObjects>
1190 void If(
bool condition,
Verbosity verbosity, BoxedObjects&&... logables )
1264 const Box& logables,
1266 Scope scope= Scope::Global,
1374 Scope scope= Scope::Global ,
1427 detail::LI::once(
impl,
nullptr, Verbosity::Info, logables,
nullptr, Scope::Global, quantity );
1446 const String& group,
int quantity= 1 )
1472 #if ALIB_DEBUG_MONOMEM
ALIB_API Box Retrieve(Scope scope=Scope::Global)
void Error(BoxedObjects &&... logables)
void SetStartTime(const FILETIME &startTime, const NString &loggerName=nullptr)
void Info(BoxedObjects &&... logables)
void Once(const Box &logables, Scope scope, int quantity=1)
void Once(const Box &logables, int quantity=1)
bool RemoveLogger(detail::Logger *logger)
void Store(const Box &data, Scope scope=Scope::Global)
void If(bool condition, Verbosity verbosity, BoxedObjects &&... logables)
detail::Logger * RemoveLogger(const NString &loggerName)
static ALIB_API detail::textlogger::TextLogger * CreateConsoleLogger(const NString &name=nullptr)
void Entry(const NString &domain, Verbosity verbosity)
void SetPrefix(const Box &prefix, Scope scope, threads::Thread *thread)
monomem::MonoAllocator & DbgGetMonoAllocator()
void Once(Verbosity verbosity, const Box &logables, const String &group, int quantity=1)
void Once(const Box &logables, const String &group, int quantity=1)
void If(bool condition, const NString &domain, Verbosity verbosity, BoxedObjects &&... logables)
void Once(const NString &domain, Verbosity verbosity, const Box &logables, const String &group, Scope scope=Scope::Global, int quantity=1)
Lox(const NString &name, bool doRegister=true)
void State(const NString &domain, Verbosity verbosity, const String &headLine, StateInfo flags=StateInfo::All)
void Once(Verbosity verbosity, const Box &logables, const String &group, Scope scope, int quantity=1)
static constexpr NString InternalDomains
void SetStartTime(time_t startTime, const NString &loggerName=nullptr)
void RemoveThreadDomain(const NString &scopeDomain, Scope scope, threads::Thread *thread=nullptr)
void Store(const Box &data, const NString &key, Scope scope=Scope::Global)
void Verbose(BoxedObjects &&... logables)
int IsActive(Verbosity verbosity, const NString &domain=NullNString())
void SetDomainSubstitutionRule(const NString &domainPath, const NString &replacement)
void Reset(bool reInitialze=true)
void SetPrefix(const Box &prefix, const NString &domain=nullptr, lang::Inclusion otherPLs=lang::Inclusion::Include)
integer & GetLogCounter()
void SetPrefix(const Box &prefix, Scope scope)
void EntryDetectDomain(Verbosity verbosity, BoxedObjects &&... logables)
void MapThreadName(const String &threadName, threads::ThreadID id=0)
void SetDomain(const NString &scopeDomain, Scope scope)
void Assert(bool condition, BoxedObjects &&... logables)
void Once(Verbosity verbosity, const Box &logables, int quantity=1)
void Warning(BoxedObjects &&... logables)
Boxes & GetLogableContainer()
void Once(const Box &logables, const String &group, Scope scope, int quantity=1)
ALIB_API Box Retrieve(const NString &key, Scope scope=Scope::Global)
void Acquire(const NCString &file, int line, const NCString &func)
const NString & GetName()
void Once(const NString &domain, Verbosity verbosity, const Box &logables, Scope scope=Scope::Global, int quantity=1)
void SetSourcePathTrimRule(const NCString &path, lang::Inclusion includeString=lang::Inclusion::Exclude, int trimOffset=0, lang::Case sensitivity=lang::Case::Ignore, const NString &trimReplacement=NullNString(), lang::Reach reach=lang::Reach::Global, Priorities priority=Priorities::DefaultValues)
detail::Logger * GetLogger(const NString &loggerName)
void SetStartTime(Ticks startTime=time::Ticks(), const NString &loggerName=nullptr)
void ClearSourcePathTrimRules(lang::Reach reach=lang::Reach::Global, bool allowAutoRule=true)
void SetVerbosity(detail::Logger *logger, Verbosity verbosity, const NString &domain="/", Priorities priority=Priorities::DefaultValues)
void GetState(NAString &buf, StateInfo flags=StateInfo::All)
void Once(Verbosity verbosity, const Box &logables, Scope scope, int quantity=1)
void SetVerbosity(const NString &loggerName, Verbosity verbosity, const NString &domain="/", Priorities priority=Priorities::DefaultValues)
void SetDomain(const NString &scopeDomain, Scope scope, threads::Thread *thread)
#define ALIB_ENUMS_MAKE_BITWISE(TEnum)
#define ALIB_ENUMS_ASSIGN_RECORD(TEnum, TRecord)
@ Exclude
Chooses exclusion.
@ Include
Chooses inclusion.
@ Global
Denotes global reach.
@ ScopeDomains
Scope domains.
@ CompilationFlags
ALib /ALox compilation flags
@ DSR
Domain substitution rules.
@ InternalDomains
Internal domains.
@ Version
Library Version and thread safeness.
@ PrefixLogables
Prefix logables.
@ Domains
Log domains currently registered.
@ LogData
Log data objects.
@ Basic
Name and number of log calls.
@ SPTR
Source path trim rules.
@ ThreadMappings
Named threads.
lox::detail::textlogger::TextLogger TextLogger
Type alias in namespace alib.
constexpr NString NullNString()
lox::detail::Logger Logger
Type alias in namespace alib.
lang::integer integer
Type alias in namespace alib.
static ALIB_API void SetSourcePathTrimRule(LoxImpl *impl, const NCString &path, lang::Inclusion includeString, int trimOffset, lang::Case sensitivity, const NString &trimReplacement, lang::Reach reach, Priorities priority)
static ALIB_API void entryDetectDomainImpl(LoxImpl *impl, Verbosity verbosity)
static ALIB_API void SetStartTime(LoxImpl *impl, Ticks startTime, const NString &loggerName)
static ALIB_API void SetDomainSubstitutionRule(LoxImpl *impl, const NString &domainPath, const NString &replacement)
static ALIB_API void setDomain(LoxImpl *impl, const NString &scopeDomain, Scope scope, bool removeNTRSD, threads::Thread *thread)
static ALIB_API detail::Logger * GetLogger(LoxImpl *impl, const NString &loggerName)
static ALIB_API void RemoveThreadDomain(LoxImpl *impl, const NString &scopeDomain, Scope scope, threads::Thread *thread)
static ALIB_API bool RemoveLogger(LoxImpl *impl, detail::Logger *logger)
static ALIB_API void store(LoxImpl *impl, const Box &data, const NString &pKey, Scope scope)
static ALIB_API void Release(LoxImpl *impl)
static ALIB_API void IncreaseLogCounter(LoxImpl *impl)
static ALIB_API void Construct(Lox *lox, const NString &name, bool doRegister)
static ALIB_API void Reset(LoxImpl *impl, bool reInitialze=true)
static ALIB_API Boxes & GetLogableContainer(LoxImpl *impl)
static ALIB_API void setPrefix(LoxImpl *impl, const Box &prefix, Scope scope, threads::Thread *thread)
static ALIB_API void GetState(LoxImpl *impl, NAString &buf, StateInfo flags)
static ALIB_API void MapThreadName(LoxImpl *impl, const String &threadName, threads::ThreadID id)
static ALIB_API void State(LoxImpl *impl, const NString &domain, Verbosity verbosity, const String &headLine, StateInfo flags)
static ALIB_API void Destruct(Lox *lox)
static ALIB_API Box retrieve(LoxImpl *impl, const NString &pKey, Scope scope)
static ALIB_API integer & GetLogCounter(LoxImpl *impl)
static ALIB_API const NString & GetName(LoxImpl *impl)
static ALIB_API void Entry(LoxImpl *impl, const NString &domain, Verbosity verbosity)
static ALIB_API monomem::MonoAllocator & DbgGetMonoAllocator(LoxImpl *impl)
static ALIB_API void once(LoxImpl *impl, const NString &domain, Verbosity verbosity, const Box &logables, const String &pGroup, Scope scope, int quantity)
static ALIB_API void Acquire(LoxImpl *impl, const NCString &file, int line, const NCString &func)
static ALIB_API void SetPrefix(LoxImpl *impl, const Box &prefix, const NString &domain, lang::Inclusion otherPLs)
static ALIB_API void SetVerbosity(LoxImpl *impl, detail::Logger *logger, Verbosity verbosity, const NString &domain, Priorities priority)
static ALIB_API int IsActive(LoxImpl *impl, Verbosity verbosity, const NString &domain)