Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

printf style logging for f#

Tags:

f#

How do i setup a printf-style logger for f# using logging library similar to log4net. i have Log.Debug, Info, Warn, etc. functions that are similar to DebugFormat or InfoFormat in log4net. i tried to setup type extensions for my Log class that i could call in printf style like Log.Debugf "%s" "foo". my generic log function looks like this:

let log format = Printf.kprintf (sprintf "%s") format

i am having trouble with the extension function signature to log to my Debug function... i tried using Debugf format and Debug

like image 890
Alex Avatar asked Sep 01 '25 02:09

Alex


1 Answers

I'm not familiar with log4net, but assuming you're logging to a MessageBox (like the pros do), you can do the following:

let log format = Printf.kprintf (fun msg -> System.Windows.Forms.MessageBox.Show(msg)) format

In this case, since Show takes a string, it can be shortened to:

let log format = Printf.kprintf System.Windows.Forms.MessageBox.Show format
like image 109
Daniel Avatar answered Sep 02 '25 23:09

Daniel