java-库-日志

JDK自带库

// 获取全局 Logger(名称是 global)
Logger logger = Logger.getGlobal();
// 获取自定义名称 Logger
Logger logger = Logger.getLogger("zc_logger");

// 7个日志级别
logger.severe("severe msg");
logger.warning("warning msg");
logger.info("info msg");
logger.config("config msg");
logger.fine("fine msg");
logger.finer("finer msg");
logger.finest("finest msg");

// 修改日志级别(打印全部级别日志)
logger.setLevel(Level.ALL);
// 修改日志级别(比 INFO 严重的日志会打印)
logger.setLevel(Level.INFO);
// 修改日志级别(关闭打印)
logger.setLevel(Level.OFF);

// 过滤日志(打印消息中包含 msg 字符串的日志)
logger.setFilter(record -> record.getMessage().contains("msg"));
十二月 20, 2021 5:25:39 下午 Main main
严重: severe msg
十二月 20, 2021 5:25:39 下午 Main main
警告: warning msg
十二月 20, 2021 5:25:39 下午 Main main
信息: info msg

(1)默认级别是INFO,因此,INFO级别以下的日志,不会被打印出来。

(2)Logging系统在JVM启动时读取配置文件并完成初始化,一旦开始运行main()方法,就无法修改配置;

(3)配置不太方便,需要在JVM启动时传递参数-Djava.util.logging.config.file=

(4)Java标准库内置的Logging使用并不是非常广泛。

Commons Logging和Log4j

Commons Logging的特色是,它可以挂接不同的日志系统,并通过配置文件指定挂接的日志系统。默认情况下,Commons Loggin自动搜索并使用Log4j(Log4j是另一个流行的日志系统),如果没有找到Log4j,再使用JDK Logging。

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class Main {
    public static void main(String[] args) {
        Log log = LogFactory.getLog(Main.class);
        log.info("start...");
        log.warn("end.");
    }
}

Commons Logging,可以作为“日志接口”来使用。而真正的“日志实现”可以使用Log4j。

SLF4J和Logback

SLF4J类似于Commons Logging,也是一个日志接口,而Logback类似于Log4j,是一个日志的实现。

因为对Commons Logging的接口不满意,有人就搞了SLF4J。因为对Log4j的性能不满意,有人就搞了Logback。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值