如何在F#脚本(fsx)中设置NLog



我有一些f#项目使用NLog进行日志记录。当我使用项目生成的.exe时,日志记录工作很好,我可以在文件或控制台中看到输出。

但现在我需要在fsx脚本中使用我的项目中定义的类型(使用日志记录),我遇到了麻烦。

我的部分脚本

#r "NLog.dll"
#r "Emulators.dll" // contains some types which uses NLog
#r "DeviceEmulator.exe" // also contains types which uses NLog
// instantiating and run objects

所有操作都很好,但我在控制台和文件中都没有看到NLog的输出。我错过了什么?

我目前无法访问计算机进行检查,但当在fsi脚本中激发时,您的NLog可能无法获取其配置。

您可能希望在已编译的F#项目中找到nlog.config文件,并将其复制到fsi.exe(64位fsiFsiAnyCPU.exe)与Fsi.exe.config(FsiAnyCPU.exe.config)并排放置的目录中。

对于Windows上的F#3.x,位置通常为C:Program Files (x86)Microsoft SDKsF#3.0Frameworkv4.0

或者,您可以从代码切换到配置NLog,并从脚本运行配置部分。

我不知道NLog,但可能您需要重定向输出。

Console.SetOut(someClassDerivingFromStringWriter)
Console.SetError(someClassDerivingFromStringWriter)

最新更新