我有一些使用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的输出。我错过了什么?
答案 0 :(得分:1)
我目前无法访问要检查的计算机,但在NLog
脚本中触发时,fsi
可能无法获取其配置。
您可能希望在已编译的F#项目中找到nlog.config
文件并将其复制到fsi.exe
(64位FsiAnyCPU.exe
的{{1}})所在的目录中与fsi
(Fsi.exe.config
)并排排列。
对于Windows上的F#3.x,位置通常为FsiAnyCPU.exe.config
。
或者,您可以切换到configuring NLog
from your code并从脚本运行配置文件。
答案 1 :(得分:0)
我不知道NLog,但可能需要重定向输出。
Console.SetOut(someClassDerivingFromStringWriter)
Console.SetError(someClassDerivingFromStringWriter)