gpt4 book ai didi

swift - 在 Swift 脚本中使用 CleanroomLogger 无法解析 DefaultLogConfiguration

转载 作者:行者123 更新时间:2023-11-30 10:09:25 24 4
gpt4 key购买 nike

我刚刚开始使用 Swift 2.0 进行脚本编写,并遇到了正在解决的符号问题。

使用 Carthage 我从包含的 Cartfile 中引导

github "emaloney/CleanroomLogger"

我可以通过以下方式让 CleanroomLogger 在 Playground 内工作:

  1. 在 XCode 7.1.1 内创建工作区
  2. ./Carthage/Checkouts/CleanroomLogger 添加 CleanroomLogger.xcodeproj 文件
  3. 在项目中创建一个新的 Playground

在 Playground 内我输入代码

import CleanroomLogger

var logConfig = DefaultLogConfiguration.init(minimumSeverity: LogSeverity.Debug, synchronousMode: true)
Log.enable(logConfig)
Log.debug?.message("Sample message sent to debug")
Log.debug?.value("Sample value sent to debug")

播放时没有错误。我只看到 () 作为 Playground 中每个预期的 Log.debug? 调用旁边的输出。如果我打开控制台应用程序,我会看到两个条目:

11/20/15 10:33:51.455 PM Cleanroom Logger[70056]:   DEBUG | <EXPR>:5 — Sample message sent to debug
11/20/15 10:33:51.455 PM Cleanroom Logger[70056]: DEBUG | <EXPR>:6 — <String: "Sample value sent to debug">

很明显,我现在已经检查并正确构建了 CleanroomLogger。

我继续尝试使用与我的 Cartfile 位于同一目录中的脚本 logger-demo.swift 中的 Cleanroom Logger。该脚本与 Playground 代码相同,只是在开头添加了 shebang

#!/usr/bin/env swift -F Carthage/Build/Mac

import CleanroomLogger

var logConfig = DefaultLogConfiguration.init(minimumSeverity: LogSeverity.Debug, synchronousMode: true)
Log.enable(logConfig)
Log.debug?.message("Hello from inside my Mac")
Log.debug?.value("This is a test of value")

运行脚本会产生以下输出:

$ ./logger-demo.swift
LLVM ERROR: Program used external function '__TMdV15CleanroomLogger23DefaultLogConfiguration' which could not be resolved!

为什么这可以在 Playground 中解决,但不能从 swift 脚本中解决?

最佳答案

哇,听起来很复杂......

也许可以尝试SwiftyBeaver Swift 2 的记录器。它很简单(!),支持颜色,速度快,而且功能更齐全。

PS:我是创造者:)

关于swift - 在 Swift 脚本中使用 CleanroomLogger 无法解析 DefaultLogConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33840534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com