依赖项
您需要在类路径中包含 org.apache.logging.log4j:log4j-api-scala
依赖项
libraryDependencies ++= Seq(
"org.apache.logging.log4j" %% "log4j-api-scala" % "13.1.0"
)
Java 模块名称设置为 org.apache.logging.log4j.api.scala
。OSGi Bundle-SymbolicName
设置为 org.apache.logging.log4j.api.scala.2.10
、org.apache.logging.log4j.api.scala.2.11
等。
用法
使用 Scala API 就像将 Logging
特性混合到您的类中一样简单
import org.apache.logging.log4j.scala.Logging
import org.apache.logging.log4j.Level
class MyClass extends BaseClass with Logging {
def doStuff(): Unit = {
logger.info("Doing stuff")
}
def doStuffWithLevel(level: Level): Unit = {
logger(level, "Doing stuff with arbitrary level")
}
def doStuffWithUser(user: User): Unit = {
logger.info(s"Doing stuff with ${user.getName}.")
}
}
参数替换
与 Java 不同,Scala 提供了用于字符串插值的原生功能 从 Scala 2.10 开始。由于所有日志记录器调用都实现为宏,因此直接使用字符串插值不需要额外的 if 检查
logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBirthday}")
日志记录器名称
大多数日志记录实现使用分层方案来匹配日志记录器名称与日志记录配置。在此方案中,日志记录器名称层次结构由日志记录器名称中的 .
字符表示,与用于 Java/Scala 包名称的层次结构非常相似。Logging
特性添加的 Logger
属性遵循此约定:该特性确保 Logger
自动根据其使用的类进行命名。
开发
Log4j Scala API 使用 GitHub 进行源代码管理。
该项目需要两个 Java 编译器才能构建
-
8
(Scala2.10
和2.11
需要) -
一个匹配
[17,18)
范围的编译器。
您可以使用以下命令构建和验证源代码
./mvnw verify
您可以按如下方式构建并查看网站
./mvnw -N site
python -m http.server -d target/site
分发
-
ASF 发布 和 快照 存储库(镜像到 Maven 中央存储库)
-
ASF 分发目录
有关详细信息,请参阅 发行说明。
CycloneDX 软件物料清单 (SBOM)
从版本 13.1.0
开始,Log4j Scala API 随每个部署的工件一起分发 CyclenoDX 软件物料清单 (SBOM)。这是由 logging-parent
简化的,有关详细信息,请参阅 其网站。
支持
请记住,此项目仅供内部使用。您可以使用 GitHub Issues 提出功能请求和错误报告,而不是问题!有关详细信息,请参阅 Log4j 支持策略。
安全
如果您遇到未列出的安全漏洞或其他具有安全影响的意外行为,请私下向 Log4j 安全邮件列表 报告。有关更多详细信息,请参阅 Log4j 安全页面。
发行说明
13.1.0
- 发布日期
-
2024-02-01
此次小版本包含错误修复、软件物料清单 (SBOM) 生成以及一些依赖项更新。
新增
-
开始生成 CycloneDX SBOM
修复
-
修复 Scala 3 宏中的递归内联问题 (40)
13.0.0
- 发布日期
-
2023-10-10
此主要版本的亮点包括 Scala 3 支持、OSGi 和 JPMS 描述符,以及切换到 语义版本控制。
请注意,此版本仍然与早期版本 12.0
二进制兼容。尽管我们需要为了语义版本控制切换而增加主版本号,以避免与版本排序相关的混淆。
新增
-
添加对 Scala 3 的支持 (LOG4J2-3184、26)
-
添加 OSGi 和 JPMS 支持
更改
-
将 Java 版本提升至 17(Scala 2.10 和 2.11 目标仍然需要 Java 8,构建切换到使用
maven-toolchains-plugin
) -
将 CI 切换到 GitHub Actions
-
从
sbt
切换到 Maven,以利用logging-parent
的便利性 -
切换到语义版本控制
-
将
org.apache.logging.log4j:log4j-api
版本更新至2.20.0
-
将
org.apache.logging:logging-parent
版本更新至10.1.1
-
开始使用
log4j-changelog
12.0
- 发布日期
-
2020-05-03
这是该项目的第一个版本。
新增
-
为
sbt
构建添加 Jenkins 管道 (LOG4J2-2291) -
将必需的许可证文件添加到
sbt
输出工件 (LOG4J2-2293) -
添加
apache-rat-plugin
报告 (LOG4J2-2294) -
添加 OSGi 描述符 (LOG4J2-2295)
-
添加
sbt-site
插件和网站配置 (LOG4J2-2296) -
将更改日志添加到网站 (LOG4J2-2298)
-
添加对 Scala 2.13 的支持 (LOG4J2-2668)
更改
-
从
sbt
切换到 Maven,以利用logging-parent
的便利性 (LOG4J2-1882) -
添加发行版分发脚本 (LOG4J2-2303)
发行说明
Log4j Scala API 采用由 logging-parent
提供的 CI/CD 基础。您可以简单地使用其发行说明。
许可证
根据一个或多个贡献者许可协议授予 Apache 软件基金会 (ASF) 许可。有关版权所有权的更多信息,请参阅随此作品分发的 NOTICE.txt
。ASF 根据 Apache 许可证 2.0 版(“许可证”)向您许可此文件;您不得在不遵守许可证的情况下使用此文件。您可以在以下网址获取许可证副本:https://www.apache.org/licenses/LICENSE-2.0。
除非适用法律要求或以书面形式同意,否则根据许可证分发的软件按“原样”分发,没有任何明示或暗示的担保或条件。请参阅许可证以了解管理许可证下权限和限制的具体语言。