let setLogDirectory (dir: string) =
lock monitor (fun () ->
logDir <- dir
- absoluteDir <- Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), logDir)
+ absoluteDir <- Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), logDir)
if stream <> null
then
static member AddListener (listener: IListener) = instance.AddListener(listener)
static member RmListener (listener: IListener) = instance.RmListener(listener)
- static member LogWithTime (message: string, severity: Severity, f: unit -> 'a, [<ParamArray>] args: Object[]) : 'a =
+ static member LogWithTime (message: string, severity: Severity, f: unit -> 'a option, [<ParamArray>] args: Object[]) : 'a option =
let sw = Stopwatch()
sw.Start()
let res = f ()
sw.Stop()
- instance.Write(String.Format(message, args) + sprintf " (time: %d ms)" sw.ElapsedMilliseconds, severity)
+ if res.IsSome
+ then
+ instance.Write(String.Format(message, args) + sprintf " (time: %d ms)" sw.ElapsedMilliseconds, severity)
res
static member Debug (message: string, [<ParamArray>] args: Object[]) =