Voting: std.logger
Marco Leise via Digitalmars-d
digitalmars-d at puremagic.com
Sat Aug 30 23:20:08 PDT 2014
Am Sun, 31 Aug 2014 01:09:32 +0000
schrieb "Ola Fosheim Grøstad"
<ola.fosheim.grostad+dlang at gmail.com>:
> I've got some questions:
>
> How does logging interact with pure? You need to be able to log
> in pure functions.
How do you come to that conclusion? Purity is a synonym for
_not_ having side effects. That said - as usual - "debug"
statements allow you to punch a hole into purity.
> […]
>
> Is logf() needed? Can't you somehow detect that the string is an
> immutable string literal with string formatting characters?
1) The first argument does not need to be a literal.
2) Checking the first argument for formatting chars slows the
system down.
3) If you want to log a regular string, e.g. an incoming HTTP
request or something that contains formatting symbols, log()
would throw an exception about a missing second argument.
This in turn could become a DOS vulnerability.
Other than that, you could create an additional log function
that only accepts compile-time known formatting strings as a CT
argument and verifies the runtime argument types at the same
time.
--
Marco
More information about the Digitalmars-d
mailing list