是否有适用于 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 运算符?

PureScript 等价于 Haskell 的 >> 运算符

Haskell 中缀函数应用优先级

可点击的行仅适用于数据表的第一页

是否可以使用 Ghcjs、Haste、Elm 等在服务器端渲染 Haskell 前端?