On 7 Mar 2020, at 0:39, Christopher Lam wrote:
I'd thought that the log level would be an invariant per session. If
log levels could be amended mid-session I'd like to see how.
Call qof-log-set-level. It works fine without the most recent change to
gnc:debug. I put a few calls to it into
gnc:price-quotes-install-sources to test this. I made sure to compile
the Scheme code in case compilation changed things.
The gnc:debug was optimized because there was (gnc:debug pricelist)
whereby a long pricelist (which is realistic) would obligatorily lead
to string-join and map in strify, and was definitely a _major_
slowdown. Conclusion: we don't want to call strify with a long list
unnecessarily.
I understand. Avoiding the call to strify is a good idea and I don't
intend to change that. I was simply pointing out that evaluating the
args to gnc:debug may also take some time. In the case you mention
presumably pricelist already exists, but sometimes the debug output has
to be created by calling other functions which can take time. I don't
think it's possible to avoid that by changing gnc:debug, at least not
easily.
If log level is not an invariant, assuming qof_log_check is fast,
would be:
(define (gnc:debug items)
(when (qof-log-check "gnc" QOF-LOG-DEBUG)
(gnc-scm-log-debug (strify items))))
Yes, that's what I have in mind except change the first arg to
qof-log-check to "gnc.scm" which is the original bug that I was looking
for.
Mike
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel