小编典典

登录 Scala

all

登录 Scala 应用程序的好方法是什么?符合语言哲学的东西,不会使代码混乱,维护成本低且不引人注目。这是一个基本要求列表:

  • 简单的
  • 不会使代码混乱。Scala 非常简洁。我不希望我的一半代码是记录语句
  • 可以更改日志格式以适应我的其余企业日志和监控软件
  • 支持日志级别(即调试、跟踪、错误)
  • 可以记录到磁盘以及其他目的地(即套接字、控制台等)
  • 最低配置(如果有)
  • 在容器中工作(即 Web 服务器)
  • (可选,但很高兴)作为语言的一部分或作为 maven 工件提供,所以我不必破解我的构建来使用它

我知道我可以使用现有的 Java 日志记录解决方案,但它们至少在上述两个方面都失败了,即混乱和配置。

感谢您的回复。


阅读 134

收藏
2022-08-15

共1个答案

小编典典

slf4j 包装器

Scala 的大多数日志库都是围绕 Java 日志框架(slf4j、log4j 等)的一些包装器,但截至 2015 年 3 月,幸存的日志库都是
slf4j。这些日志库提供了某种log可以调用的对象info(...)debug(...)等等。我不是 slf4j
的忠实粉丝,但它现在似乎是主要的日志框架。这是SLF4J的描述:

Java 或 (SLF4J) 的简单日志外观作为各种日志框架的简单外观或抽象,例如 java.util.logging、log4j 和
logback,允许最终用户在部署时插入所需的日志框架。

在部署时更改底层日志库的能力为整个 slf4j 记录器系列带来了独特的特性,您需要注意:

  1. 类路径作为配置 方法。slf4j 知道您正在使用哪个底层日志库的方式是通过某个名称加载一个类。在自定义类加载器时,我遇到了 slf4j 无法识别我的记录器的问题。
  2. 因为 简单的外观 试图成为共同点,所以它仅限于实际的日志调用。换句话说,无法通过代码进行配置。

在大型项目中,如果每个人都使用 slf4j,则能够控制传递依赖项的日志记录行为实际上会很方便。

Scala 日志记录

Scala Logging由 Heiko Seeberger
编写,作为他的slf4s的继承者。它使用宏将调用扩展为 if
表达式,以避免潜在的昂贵日志调用。

Scala Logging 是一个方便且高性能的日志库,它包含了 SLF4J 和其他可能的日志库。

历史记录器

  • Logula,由 Coda Hale 编写的 Log4J 包装器。以前喜欢这个,现在弃了。
  • configgy,一个 java.util.logging 包装器,在 Scala 的早期很流行。现在放弃了。
2022-08-15