我正在用F#开发一个SAFE应用程序,其中一部分是将一些日志发送到Azure中的Application Insights。服务器端日志记录有点easy:
open Microsoft.ApplicationInsights
open Microsoft.ApplicationInsights.Extensibility
let getTelemetryClient() =
let key = <key>
TelemetryConfiguration.Active.InstrumentationKey <- key
TelemetryClient()
let log (message : string) =
let logger = (lazy getTelemetryClient()).Value
logger.TrackTrace message
logger.Flush()
现在我想在寓言中在客户端做类似的事情。我有一个AI密钥,我需要以某种方式将数据发送到Azure。相同的代码不会转换为JS。
答案 0 :(得分:2)
这可以通过寓言中的dynamic programming来实现。
package.json
中添加AI JS依赖项:{
...
"devDependencies": {
...
"applicationinsights-js": "^1.0.20"
}
}
webpack.config.js
中反映出来:fsharpEntry: {
"app": [
...
"applicationinsights-js"
]
}
open Fable.Core.JsInterop
open Fable.Import.Browser
let setup() =
let key = <key>
let config = createObj [ "instrumentationKey" ==> key ]
window?appInsights?downloadAndSetup config
let log message = window?appInsights?trackTrace message
也许有更多适当的和/或类型安全的方法,但这可行。