std.experimental.logger: practical observations
Sean Kelly via Digitalmars-d
digitalmars-d at puremagic.com
Mon Sep 15 11:37:08 PDT 2014
On Thursday, 11 September 2014 at 16:55:32 UTC, Marco Leise wrote:
>
> 3. Exceptions and loggin don't mix.
> Logging functions expect the file and line to be the one
> where the logging function is placed. When I work with C
> functions I tend to call them through a template that will
> check the error return code. See:
> http://dlang.org/phobos/std_exception.html#.errnoEnforce
> Such templates pick up file and line numbers from where
> they are instantiated and pass them on to the exception
> ctor as runtime values.
> Now when I use error(), I see no way to pass it runtime
> file and line variables to make the log file reflect the
> actual file and line where the error occured, instead of
> some line in the template or where ever I caught the
> exception.
> Not all errors/exceptions are fatal and we might just want
> to log an exception and continue with execution.
This is a tricky situation. Log files generally have a specific
format for a given application, and I often don't want APIs I
call writing lines to whatever log I have open. What I tend to
like the best is for APIs that log data to log to an internal
circular buffer, and provide me the option to request that log
data. Then if I get an error while using that API and I want
additional context, I can pull the internal logs and examine them
or dump them in my own application's log file.
More information about the Digitalmars-d
mailing list