ALib C++ Library
Library Version: 2412 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
VStudioLogger Class Reference

Description:

A logger that logs to the Visual Studio output pane using OutputDebugString(). The name of the Logger defaults to "VSTUDIO_CONSOLE".

ALox text logger escape sequences (see class ESC) are removed and ignored.

Note
For the ease of use, class Log implements a method Log::AddDebugLogger that tries to create the right Logger type for standard debug logging. If a Visual Studio debug session is detected, this logger is added. If in addition, a windows console application is detected, then a second logger of type WindowsConsoleLogger is added.

Definition at line 31 of file vstudiologger.hpp.

#include <vstudiologger.hpp>

Inheritance diagram for VStudioLogger:
[legend]
Collaboration diagram for VStudioLogger:
[legend]

Public Method Index:

ALIB_API VStudioLogger (const NString &name=nullptr)
 
virtual ALIB_API ~VStudioLogger ()
 Destructs a VStudioLogger.
 
- Public Method Index: inherited from TextLogger
virtual ALIB_API ~TextLogger () override
 Destructs a TextLogger.
 
virtual ALIB_API void ClearReplacements ()
 Removes all pairs of searched strings and their replacement value.
 
FormatAutoSizesGetAutoSizes ()
 
FormatDateTimeGetFormatDate ()
 
FormatMetaInfoGetFormatMetaInfo ()
 
FormatMultiLineGetFormatMultiLine ()
 
FormatOtherGetFormatOther ()
 
FormatTimeDiffGetFormatTimeDiff ()
 
ReplacementsGetReplacements ()
 
virtual ALIB_API void Log (detail::Domain &domain, Verbosity verbosity, BoxesMA &logables, detail::ScopeInfo &scope) override
 
virtual ALIB_API void ResetAutoSizes ()
 
virtual ALIB_API void SetReplacement (const String &searched, const String &replacement)
 
- Public Method Index: inherited from Logger
virtual ~Logger () override
 Destructs a logger.
 
const NStringGetName () const
 
const NStringGetTypeName () const
 
- Public Method Index: inherited from RecursiveLock
 ~RecursiveLock () override
 Destructor. With debug-compilations, asserts that this lock is not acquired.
 
ALIB_API void AcquireRecursive (ALIB_DBG_TAKE_CI)
 
virtual ALIB_API bool DCSIsAcquired () const override
 
virtual ALIB_API bool DCSIsSharedAcquired () const override
 
ALIB_API void ReleaseRecursive (ALIB_DBG_TAKE_CI)
 
ALIB_API bool TryAcquire (ALIB_DBG_TAKE_CI)
 
- Public Method Index: inherited from DbgCriticalSections::AssociatedLock
virtual ~AssociatedLock ()
 Virtual Destructor.
 

Protected Field Index:

AString outputString
 
- Protected Field Index: inherited from TextLogger
lang::system::CalendarDateTime callerDateTime
 
AString logBuf
 The internal log Buffer.
 
AString msgBuf
 The buffers for converting the logables.
 
bool usesStdStreams
 
Variable varFormatAutoSizes
 
Variable varFormatDateTime
 
Variable varFormatMetaInfo
 
Variable varFormatMultiLine
 
Variable varFormatOther
 
Variable varFormatTimeDiff
 
Variable varReplacements
 
- Protected Field Index: inherited from Logger
NString32 Name
 
NString32 TypeName
 
- Protected Field Index: inherited from RecursiveLock
std::recursive_mutex mutex
 

Protected Method Index:

virtual ALIB_API void AcknowledgeLox (detail::LoxImpl *lox, lang::ContainerOp op) override
 
virtual ALIB_API integer logSubstring (const String &buffer, integer start, integer length)
 
virtual ALIB_API bool notifyLogOp (lang::Phase phase)
 
virtual ALIB_API void notifyMultiLineOp (lang::Phase)
 Empty implementation, not needed for this class.
 
- Protected Method Index: inherited from PlainTextLogger
 PlainTextLogger (const NString &name, const NString &typeName, bool pUsesStdStreams)
 
virtual ~PlainTextLogger () override
 Destructs a MemoryLogger.
 
virtual ALIB_API void logText (detail::Domain &domain, Verbosity verbosity, AString &msg, detail::ScopeInfo &scope, int lineNumber) override
 
- Protected Method Index: inherited from TextLogger
ALIB_API TextLogger (const NString &pName, const NString &typeName, bool pUsesStdStreams)
 
virtual ALIB_API void processVariable (const NString &domainPath, Verbosity verbosity, detail::ScopeInfo &scope, AString &dest, Substring &variable)
 
virtual ALIB_API void writeMetaInfo (AString &buffer, detail::Domain &domain, Verbosity verbosity, detail::ScopeInfo &scope)
 
virtual ALIB_API void writeTimeDiff (AString &buffer, int64_t diffNanos)
 
- Protected Method Index: inherited from Logger
 Logger (const NString &name, const NString &typeName)
 

Additional Inherited Members

- Public Field Index: inherited from PlainTextLogger
bool PruneESCSequences = true
 
- Public Field Index: inherited from TextLogger
ObjectConverterConverter = nullptr
 
TickConverter DateConverter
 
bool FormatWarningOnce = false
 
- Public Field Index: inherited from Logger
integer CntLogs =0
 
time::Ticks TimeOfCreation
 The creation time of the Logger.
 
time::Ticks TimeOfLastLog
 Timestamp of the last log operation.
 
- Public Field Index: inherited from RecursiveLock
DbgLockAsserter Dbg
 The debug tool instance.
 

Field Details:

◆ outputString

AString outputString
protected

A character buffer used for the creation of zero-terminated output strings required by the VStudio logger interface.

If ALIB_CHARACTERS_WIDE is set, this string also acts as a converter to wide characters.

Definition at line 42 of file vstudiologger.hpp.

Constructor(s) / Destructor Details:

◆ VStudioLogger()

VStudioLogger ( const NString & name = nullptr)
explicit

Creates a VStudioLogger.

Parameters
name(Optional) The name of the Logger, defaults to "VSTUDIO_CONSOLE".

Definition at line 25 of file vstudiologger.cpp.

Here is the call graph for this function:

◆ ~VStudioLogger()

~VStudioLogger ( )
virtual

Destructs a VStudioLogger.

Definition at line 32 of file vstudiologger.cpp.

Method Details:

◆ AcknowledgeLox()

void AcknowledgeLox ( detail::LoxImpl * lox,
lang::ContainerOp op )
overrideprotectedvirtual

Invokes parent method. Then performs some VStudio-related adoptions.

Parameters
loxThe Lox to acknowledge insertion or removal
opThe operation. Either ContainerOp::Insert or ContainerOp::Remove.

Reimplemented from TextLogger.

Definition at line 35 of file vstudiologger.cpp.

Here is the call graph for this function:

◆ logSubstring()

integer logSubstring ( const String & buffer,
integer start,
integer length )
protectedvirtual

Write the given region of the given AString to the destination buffer.

Parameters
bufferThe string to write a portion of.
startThe start of the portion in buffer to write out.
lengthThe length of the portion in buffer to write out.
Returns
The number of characters written, -1 on error.

Implements PlainTextLogger.

Definition at line 52 of file vstudiologger.cpp.

Here is the call graph for this function:

◆ notifyLogOp()

bool notifyLogOp ( lang::Phase phase)
protectedvirtual

Start a new log line. Appends a new-line character sequence to previously logged lines.

Parameters
phaseIndicates the beginning or end of a log operation.
Returns
Always returns true.

Implements PlainTextLogger.

Definition at line 45 of file vstudiologger.cpp.

◆ notifyMultiLineOp()

virtual ALIB_API void notifyMultiLineOp ( lang::Phase )
inlineprotectedvirtual

Empty implementation, not needed for this class.

Implements TextLogger.

Definition at line 97 of file vstudiologger.hpp.


The documentation for this class was generated from the following files: