Alexander Burger <a...@software-lab.de> writes:

Hi Alex,

> How about this?
>
>    (de log (File Funs . Prg)
>       (err File
>          (prog2
>             (mapc trace Funs)
>             (run Prg 1)
>             (mapc untrace Funs) ) ) )
>
> It can be used like
>
>    (log "+myLogFile" '(gt0 le0 + - * /)
>       (myProgram
>          (myFun
>             (foo (bar ..)) ) ) )
>
> This example traces all calls to the comparison and arithmetic functions
> in the list while 'myProgram' is running.
>
> The "+" is to append the output to the log file. Without it, "myLogFile"
> will be overwritten from scratch each time.

Thanks, that is short but very generic, and much better than anything I
would have produced.

One question:

could it be used to optionally log a whole web-application by wrapping
the main function as 'myProgram' into the log function?

(de main ()
   (call 'mkdir "-p" *Pool *Blob)
   (pool *Pool *Dbs *Jnl)
   (unless (seq *DB)
      (load "app/init.l") ) ... )

(de logMain ()
   (log ...
     (main) ) )

and then start with 

,-------------------------------
| : ./pil app/main.l -main -go +
`-------------------------------

or
     
,----------------------------------
| : ./pil app/main.l -logMain -go +
`----------------------------------

for turning logging off or on? 

-- 
cheers,
Thorsten

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to