首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用XCGLogger为我的所有日志加上前缀

如何用XCGLogger为我的所有日志加上前缀
EN

Stack Overflow用户
提问于 2016-09-19 10:24:00
回答 2查看 285关注 0票数 0

我想在我所有的日志中添加一个前缀。我试图子类XCGLogger来覆盖logln(...)debug(...)函数。

但是我在使用这个的时候面临两个困难

  1. 编译器总是给我错误(见图)。
  2. 我不知道如何自定义给定的日志消息,因为参数是闭包。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-09-19 11:06:30

好吧我找到了。我们需要定义一个符合classstructLogFormatterProtocol,并实现format(logDetails: inout LogDetails, message: inout String) -> String函数来修改inout消息。然后创建该类或结构的实例,并将其添加到目标格式化程序数组中:

代码语言:javascript
复制
let consoleDest = ConsoleDestination(owner: myLogger, identifier: "") // myLogger is an instance of XCGLogger
consoleDest.formatters = [MyFormatter()] // MyFormatter is a struct conforming to LogFormatterProtocol
myLogger.add(destination: consoleDest)
票数 0
EN

Stack Overflow用户

发布于 2016-09-20 08:44:59

您在上面的代码中遇到的问题是,您对编译器不清楚您正在调用哪个super.logln方法。由于该方法有多个版本,具有不同的函数,其中有些函数具有默认值,因此需要显式地包含足够的参数,以便编译器知道您正在调用哪个版本。这就是为什么你的错误信息说“模棱两可”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39570842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档