23 if( domainPrefix.
IsNotNull() )
lox.SetDomain( domainPrefix, Scope::ThreadOuter );
24 if( logPrefix .IsNotNull() )
lox.SetPrefix( logPrefix , Scope::ThreadOuter );
25 for (
auto& entry : e ) {
26 formatter.FormatArgs( buf.
Reset(), entry );
28 lox.Acquire( entry.CI );
30 tknzr.
Set( buf,
'\n' );
33 auto& logables=
lox.GetLogableContainer();
35 logables.Add(
"{}{}: {!Q[]}", (entry.Type.Integral() >= 0 ?
'E' :
'I'),
36 entryNo, entry.Type );
38 logables.Add(
" {}" , tknzr.
Next() );
40 lox.Entry(
"", verbosity );
46 if( domainPrefix.
IsNotNull() )
lox.SetDomain(
nullptr, Scope::ThreadOuter );
47 if( logPrefix .IsNotNull() )
lox.SetPrefix(
nullptr, Scope::ThreadOuter );
52 lox.Error(
"Format exception caught while creating formatted output of another exception!\n"
53 "Format output generated so far: ", buf );
#define ALIB_CALLER_NULLED
#define ALIB_LOCK_RECURSIVE_WITH(lock)
This class acts as a container for Loggers and provides a convenient interface to logging.
void DbgDisableBufferReplacementWarning()
constexpr bool IsNotNull() const
void Set(const TString< TChar > &src, TChar delimiter, bool skipEmptyTokens=false)
TSubstring< TChar > & Next(lang::Whitespaces trimming=lang::Whitespaces::Trim, TChar newDelim='\0')
TLocalString< TChar, 8 > TrimChars
strings::TString< nchar > NString
Type alias in namespace #"%alib".
format::Formatter Formatter
Type alias in namespace #"%alib".
strings::util::TTokenizer< character > Tokenizer
Type alias in namespace #"%alib".
strings::TString< character > String
Type alias in namespace #"%alib".
LocalString< 1024 > String1K
Type alias name for #"TLocalString;TLocalString<character,1024>".
exceptions::Exception Exception
Type alias in namespace #"%alib".