On 2012-11-02 18:31, Rob T wrote:
Thanks to input from the D community, I've managed to implement a
reasonable way to log the name of a calling function. This is used for
basic execution monitoring and for automated logging of exception errors.
Here's what I did.
template __FUNCTION()
{
const char[] __FUNCTION = "__traits(identifier, __traits(parent, {}))";
}
Example use in code:
throw new Exception( "Error: Function ", mixin(__FUNCTION!()) );
writefln( "File: %s, Func: %s, Line: %d", __FILE__,
mixin(__FUNCTION!()), __LINE__ );
That's pretty darn cool, well done :D .
--
/Jacob Carlborg