我有一些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位fsi
的FsiAnyCPU.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)