Assimp  v2.0 (November 2010)
Public Member Functions | Static Public Member Functions
Assimp::DefaultLogger Class Reference

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

Inherits Assimp::Logger.

List of all members.

Public Member Functions

bool attachStream (LogStream *pStream, unsigned int severity)
bool detatchStream (LogStream *pStream, unsigned int severity)

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.
static Loggerget ()
 Getter for singleton instance.
static bool isNullLogger ()
 Return whether a #NullLogger is currently active.
static void kill ()
 Kills the current singleton logger and replaces it with a #NullLogger instance.
static void set (Logger *logger)
 Setup a custom Logger implementation.

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: