16namespace alib {
namespace lox {
40 if( logPrefix .IsNotNull() ) lox.
SetPrefix( logPrefix , Scope::ThreadOuter );
41 for (
auto& entry : e )
47 tknzr.
Set( buf,
'\n' );
53 logables.
Add(
"{}{}: {!Q[]}", (entry.Type.Integral() >= 0 ?
'E' :
'I'),
54 entryNo, entry.Type );
56 logables.
Add(
" {}" , tknzr.
Next() );
58 lox.
Entry(
"", verbosity );
65 if( logPrefix .IsNotNull() ) lox.
SetPrefix(
nullptr, Scope::ThreadOuter );
70 lox.
Error(
"Format exception caught while creating formatted output of another exception!\n"
71 "Format exception information follows:\n" );
ALIB_API AString & Format(AString &target) const
This class acts as a container for Loggers and provides a convenient interface to logging.
void Error(BoxedObjects &&... logables)
BoxesMA & GetLogableContainer()
void Entry(const NString &domain, Verbosity verbosity)
void SetPrefix(const Box &prefix, Scope scope)
void SetDomain(const NString &scopeDomain, Scope scope)
void Acquire(const lang::CallerInfo &ci)
void DbgDisableBufferReplacementWarning()
constexpr bool IsNotNull() const
TLocalString< TChar, 8 > TrimChars
ALIB_API TSubstring< TChar > & Next(lang::Whitespaces trimming=lang::Whitespaces::Trim, TChar newDelim='\0')
void Set(const TString< TChar > &src, TChar delimiter, bool skipEmptyTokens=false)
#define ALIB_CALLER_NULLED
#define ALIB_LOCK_RECURSIVE_WITH(lock)