是否有适用于 Haskell 的简单颜色启用记录器?
Posted
技术标签:
【中文标题】是否有适用于 Haskell 的简单颜色启用记录器?【英文标题】:Is a simple color enabled logger for Haskell available? 【发布时间】:2012-05-13 23:47:14 【问题描述】:我想根据日志级别、主题等更改输出到终端的日志消息的颜色。
我found 在 Haskell 中执行此操作的唯一记录器是 xmonad-contrib 包的一部分,但我不想依赖它,因为它相当大。
我知道 Yesod 记录是彩色的,但我不清楚如何使其记录器在 Yesod Web 应用程序之外工作。
我查看了hslogger,它似乎与System.Log.Logger 非常相似,但似乎都没有开箱即用的颜色支持。
hslogger 可以通过自定义LogHandlers
进行扩展,所以可能有人实现了一个支持颜色的?
到目前为止我忽略了登录 Haskell 的替代方法吗?
编辑:
按照 Don Stewart 的建议,我实现了一个 custom log handler,它与 hslogger 和 ansi-c 一起使用,以便允许以颜色登录到终端。
【问题讨论】:
您可能需要提交补丁,例如添加颜色组合器 - hackage.haskell.org/packages/archive/ansi-wl-pprint/0.6.4/doc/… 谢谢,我会试一试 - 实现启用颜色的 LogHandler 并使其可用,或者可能将其拉入 hslogger。 【参考方案1】:截至 2012 年 5 月,Haskell 可用的日志库有:
hslogger - 古老的日志框架described in RWH。 SessionLogger - 一个简单的日志框架还有一些更专业的:
greg-client - greg 分布式日志系统的客户端 fast-logger - 针对快速 IO 优化的日志系统不支持 ansi 终端着色输出。有几个用于 ansi 着色的库,因此添加起来应该不会太难。例如
ansi-terminal。【讨论】:
【参考方案2】:如果您想查看另一个颜色记录器示例,请查看 wai-extra 包中的 Network.Wai.Middleware.RequestLogger (logStdoutDev)。这会根据请求改变颜色,但它应该是一个很好的例子。
【讨论】:
以上是关于是否有适用于 Haskell 的简单颜色启用记录器?的主要内容,如果未能解决你的问题,请参考以下文章
是否有类似于 Haskell 的 $(美元符号)的 Scala 运算符?