Aether Engine provides an API which can be used to log messages from simulation execution.
Applications using the logging API need to include the
At present the logging API is not functional under Windows and should only be included and used inside simulation code.
In addition any Windows code should define the C preprocessor macro
WITHOUT_HADEAN_LOGGING before including Aether headers since uses of the
logging API may be pulled in transitively.
Executables using the logging API must initialise it before any messages can be logged. This can be done
with a call to
process_name should be a short string to help identify the process.
process_pid is a
value of type
uint64_t which is expected to be a process identifier. Hadean PIDs can be cast to
uint64_ts to supply this value. Neither
process_pid are required to be meaningful.
We advise calling this function just after
Setting a Logging Level
The logging level can be set via a call to
aether::log::set_level() as follows;
Only messages equal to or above the specified level will be logged. The
following levels are defined in the scope of
In the provided demos Aether Engine sets the logging level for all processes in the simulation
to the one specified in the
aether::arguments instance used to construct the octree.
There are two ways to log messages. The first is capable of printing any C++ type that provides a C++ streaming output operator:
const int n = 42;const std::string s = "Hello world!";AETHER_LOG(INFO)("The value of n is ", n, " and the value of s is ", s);
The second allows the use of
printf-style format strings:
const int n = 42;const std::string s = "Hello world!";AETHER_LOG(INFO).printf("The value of n is %i and the value of s is %s", n, s.c_str());