如何使用类似于log4net的日志库为f#设置printf样式的记录器.我有Log.Debug,Info,Warn等功能,类似于log4net中的DebugFormat或InfoFormat.我试图为我的Log类设置类型扩展,我可以调用printf样式,如Log.Debugf"%s""foo".我的通用日志功能如下所示:
let log format = Printf.kprintf (sprintf "%s") format
Run Code Online (Sandbox Code Playgroud)
我有扩展功能签名的问题,以登录我的调试功能...我尝试使用Debugf格式和调试
我不熟悉log4net,但假设您正在登录MessageBox(就像专业人士那样),您可以执行以下操作:
let log format = Printf.kprintf (fun msg -> System.Windows.Forms.MessageBox.Show(msg)) format
Run Code Online (Sandbox Code Playgroud)
在这种情况下,由于Show需要一个字符串,它可以缩短为:
let log format = Printf.kprintf System.Windows.Forms.MessageBox.Show format
Run Code Online (Sandbox Code Playgroud)
你的意思是这样的吗?
open System
type SomeLogger() =
member this.Error(format : string, [<ParamArray>]args : obj[] ) = ()
member this.Info(format : string, [<ParamArray>]args : obj[] ) = ()
module Extensions =
type SomeLogger with
member this.FInfo format = Printf.ksprintf (this.Info) format
member this.FError format = Printf.ksprintf (this.Error) format
open Extensions
let l = new SomeLogger()
l.FInfo "%d%s" 10 "123"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |