tinylog || Log4j 、Logback 替代品

共 1574字,需浏览 4分钟

 ·

2021-12-29 17:36

tinylog2 是什么

tinylog2[1]是为简化日志记录而生的,开源的,支持 Java(1.6+)、Kotlin、Scala、安卓和任何其他 JVM 语言的轻量级日志框架

安全轻量

  • 顾名思义,tinylog 是一个轻量级的日志框架。tinylog 本身仅包含两个 JAR 文件(一个用于 API,另一个用于实现),没有任何外部依赖项(因此不会受到近期 log4j2 的漏洞影响)。两个 JAR 文件的总大小仅为 178 KB。

tinylog2 使用

Logger 输出

tinylog 有一个静态记录器类。因此,我们可以采用以下代码优雅记录日志:

import org.tinylog.Logger;
public class Application {
    public static void main(String[] args) {
        Logger.info("Hello World!");
    }
}

slf4j 适配

当然,只需要借助slf4j-tinylog[2],我们就可以继续使用 slf4j 门面而无需改变我们的代码,完成替换 log4j、logback 等。


<dependency>
    <groupId>org.tinyloggroupId>
    <artifactId>slf4j-tinylogartifactId>
    <version>2.4.1version>
dependency>

<dependency>
    <groupId>org.tinyloggroupId>
    <artifactId>tinylog-implartifactId>
    <version>2.4.1version>
dependency>
1640593433

多样化的输出选项

tinylog2 适配了多种日志输出方式。日志条目可以写入控制台、数据库表、文件和 Android 的 logcat。文件输出支持类似 logback 的滚动日志,支持多实例共享配置文件。

可配置

tinylog2 传统的 properties 文件进行配置,所有的配置项请参考官网[3]

writer        = file
writer.file = application.log
writer.format = {class}.{method}() {message}
level = info

当然,借助tinylog2-extra-stuff[4]项目,我们可以采用 yaml 或者 json 文件对其进行配置。

性能说明

tinylog2 针对日志条目的快速输出进行了优化,并且明显快于其他日志记录框架,如基准测试[5]所示。尤其是进行堆栈跟踪信息的输出(例如发出日志条目的方法名称或行号)时,tinylog2 显著快于其他所有日志框架

官网性能测试

开源

同 Java 世界的许多其他日志框架一样,tinylog2 也是一个基于 Apache License V2 协议开源的项目。其代码托管在github[6]上,可以免费商用。

参考资料

[1]

tinylog2: https://tinylog.org/v2

[2]

slf4j-tinylog: https://github.com/tinylog-org/tinylog/tree/v2.5/slf4j-tinylog

[3]

tinylog2配置项: https://tinylog.org/v2/configuration

[4]

tinylog2-extra-stuff: https://github.com/Git5000/tinylog_extra_stuff

[5]

基准测试数据: https://tinylog.org/v2/benchmark

[6]

github: https://github.com/tinylog-org/tinylog


浏览 99
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报