Assimp: Assimp::DefaultLogger Class Reference

assimp - Open Asset Import Library

CPP-API: Primary logging facility of Assimp. More...

Inherits Assimp::Logger.

Public Member Functions

bool attachStream (LogStream *pStream, unsigned int severity)
 Attach a new log-stream. More...
 
bool detatchStream (LogStream *pStream, unsigned int severity)
 Detach a still attached stream from the logger (or modify the filter flags bits) More...
 
- Public Member Functions inherited from Assimp::Logger
void debug (const char *message)
 Writes a debug message. More...
 
void debug (const std::string &message)
 
void error (const char *message)
 Writes an error message. More...
 
void error (const std::string &message)
 
LogSeverity getLogSeverity () const
 Get the current log severity. More...
 
void info (const char *message)
 Writes a info message. More...
 
void info (const std::string &message)
 
void setLogSeverity (LogSeverity log_severity)
 Set a new log severity. More...
 
void warn (const char *message)
 Writes a warning message. More...
 
void warn (const std::string &message)
 
virtual ~Logger ()
 Virtual destructor. More...
 

Static Public Member Functions

static Loggercreate (const char *name=ASSIMP_DEFAULT_LOG_NAME, LogSeverity severity=NORMAL, unsigned int defStreams=aiDefaultLogStream_DEBUGGER|aiDefaultLogStream_FILE, IOSystem *io=NULL)
 Creates a logging instance. More...
 
static Loggerget ()
 Getter for singleton instance. More...
 
static bool isNullLogger ()
 Return whether a #NullLogger is currently active. More...
 
static void kill ()
 Kills the current singleton logger and replaces it with a #NullLogger instance. More...
 
static void set (Logger *logger)
 Setup a custom Logger implementation. More...
 

Additional Inherited Members

- Public Types inherited from Assimp::Logger
- Protected Member Functions inherited from Assimp::Logger
 Logger ()
 Default constructor. More...
 
 Logger (LogSeverity severity)
 Construction with a given log severity. More...
 
- Protected Attributes inherited from Assimp::Logger
LogSeverity m_Severity
 Logger severity. More...
 

Detailed Description

CPP-API: Primary logging facility of Assimp.

The library stores its primary Logger as a static member of this class. get() returns this primary logger. By default the underlying implementation is just a #NullLogger which rejects all log messages. By calling create(), logging is turned on. To capture the log output multiple log streams (#LogStream) can be attach to the logger. Some default streams for common streaming locations (such as a file, std::cout, OutputDebugString()) are also provided.

If you wish to customize the logging at an even deeper level supply your own implementation of Logger to set().

Note
The whole logging stuff causes a small extra overhead for all imports.

Member Function Documentation

bool Assimp::DefaultLogger::attachStream ( LogStream pStream,
unsigned int  severity 
)
virtual

Attach a new log-stream.

The logger takes ownership of the stream and is responsible for its destruction (which is done using ::delete when the logger itself is destroyed). Call detachStream to detach a stream and to gain ownership of it again.

Parameters
pStreamLog-stream to attach
severityMessage filter, specified which types of log messages are dispatched to the stream. Provide a bitwise combination of the ErrorSeverity flags.
Returns
true if the stream has been attached, false otherwise.

Implements Assimp::Logger.

static Logger* Assimp::DefaultLogger::create ( const char *  name = ASSIMP_DEFAULT_LOG_NAME,
LogSeverity  severity = NORMAL,
unsigned int  defStreams = aiDefaultLogStream_DEBUGGER|aiDefaultLogStream_FILE,
IOSystem io = NULL 
)
static

Creates a logging instance.

Parameters
nameName for log file. Only valid in combination with the aiDefaultLogStream_FILE flag.
severityLog severity, VERBOSE turns on debug messages
defStreamsDefault log streams to be attached. Any bitwise combination of the aiDefaultLogStream enumerated values. If aiDefaultLogStream_FILE is specified but an empty string is passed for 'name', no log file is created at all.
ioIOSystem to be used to open external files (such as the log file). Pass NULL to rely on the default implementation. This replaces the default #NullLogger with a #DefaultLogger instance.
bool Assimp::DefaultLogger::detatchStream ( LogStream pStream,
unsigned int  severity 
)
virtual

Detach a still attached stream from the logger (or modify the filter flags bits)

Parameters
pStreamLog-stream instance for detaching
severityProvide a bitwise combination of the ErrorSeverity flags. This value is &~ed with the current flags of the stream, if the result is 0 the stream is detached from the Logger and the caller retakes the possession of the stream.
Returns
true if the stream has been detached, false otherwise.

Implements Assimp::Logger.

static Logger* Assimp::DefaultLogger::get ( )
static

Getter for singleton instance.

Returns
Only instance. This is never null, but it could be a NullLogger. Use isNullLogger to check this.
static bool Assimp::DefaultLogger::isNullLogger ( )
static

Return whether a #NullLogger is currently active.

Returns
true if the current logger is a #NullLogger. Use create() or set() to setup a logger that does actually do something else than just rejecting all log messages.
static void Assimp::DefaultLogger::kill ( )
static

Kills the current singleton logger and replaces it with a #NullLogger instance.

static void Assimp::DefaultLogger::set ( Logger logger)
static

Setup a custom Logger implementation.

Use this if the provided #DefaultLogger class doesn't fit into your needs. If the provided message formatting is OK for you, it's much easier to use create() and to attach your own custom output streams to it.

Parameters
loggerPass NULL to setup a default NullLogger
The documentation for this class was generated from the following file:
Generated on Sun Feb 21 2016 19:42:29 for Assimp by   doxygen 1.8.11