On 2011-05-09 19:45, Andrei Alexandrescu wrote:
On 5/9/11 12:24 PM, Jacob Carlborg wrote:
I assume the "initLogging" function needs the application command line
because you want to have the name of the application? If that's the
case, I don't like that is handled via the application command line. I
have a function that gets the path of the current process:

http://dsource.org/projects/tango/attachment/ticket/1536/process.d

This links to a file attached to a Tango ticket but don't worry, I've
written the whole file myself and I intend to change the license to the
Boost License. It's written with D1 (obviously) but it's very easy to
port to D2, the only dependencies are C functions.

Feel free to port it to D2 and use it in you're logging library if you
want to.

Thanks! In fact, the command-line arguments are needed for considerably
more than just the application name. std.log is configurable via
application's command line (e.g. --logtostderr --log_dir=/tmp/ etc., see
documentation) and extracts these flags using getopt. The rest of the
flags are left alone for the application to process.

Yes, but since it requires you to pass an array I assumed the application name was the minimum requirement.

In case the application would want to change a flag's name, e.g. use
"--log_to_stderr" instead of "--logtostderr", it's easy to define an API
that does that; currently all parameter names are hoisted in private
strings in std.log.


Andrei


--
/Jacob Carlborg

Reply via email to