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

时间:2014-01-30 08:35:23

标签: logging f# console-application nlog

我有一些使用NLog进行日志记录的f#项目。 当我使用项目生成的.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的输出。我错过了什么?

2 个答案:

答案 0 :(得分:1)

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

您可能希望在已编译的F#项目中找到nlog.config文件并将其复制到fsi.exe(64位FsiAnyCPU.exe的{​​{1}})所在的目录中与fsiFsi.exe.config)并排排列。

对于Windows上的F#3.x,位置通常为FsiAnyCPU.exe.config

或者,您可以切换到configuring NLog from your code并从脚本运行配置文件。

答案 1 :(得分:0)

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

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