Java日志

本节主要是介绍了各种日志的分类情况,并没有作具体实现。


一、为什么使用日志?

  日志的使用是为了克服输出语句System.out.println()在开发过程中产生的种种不便。例如:

  1. 不能自定义样式
  2. 不能按照级别进行输出控制
  3. 不能自动输出更多有用的信息(例如调用类、时间信息等)
  4. 不能够被自动重定向至文件长久保存
  5. 需要频繁的进行增加和删除输出语句

而可供我们使用的日志非常多,下面我会介绍几款现在比较流行的 Java 日志框架。


二、使用 JDK Logging

  1. 简介:Java 内置日志对象,标准库 java.util.logging。

  2. 存在很大的局限性,比如:

    • 配置不方便。如果我们需要配置,需要在 JVM 启动时传入启动参数,如:

      -Djava.util.logging.config.file=<config-file-name>

    • 日志系统会在 JVM 启动时读取配置文件并完成初始化,一旦开始运行就无法再次修改配置。

  3. 简单使用

    public class Test {
    public static void main(String[] args) {
    Logger logger = Logger.getGlobal();
    logger.info("start process...");
    logger.warning("memory is running out...");
    logger.fine("ignored.");
    logger.severe("process will be terminated...");
    }
    }

三、使用 Commons Logging + log4j

  1. 简介

    • Commons Logging:Apache日志管理模块,负责为所有的Java日志实现提供一个统一的接口,使项目与日志实现工具解耦。它的特色是可以挂载不同的日志系统、并不负责具体的日志实现,通常和 log4j 组合使用。
    • log4j:组件化的日志设计系统、日志实现模块,负责具体的日志实现。
  2. 简单使用:

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

四、使用 SLF4J + logback

  1. 简介:

    • SLF4J:相当于Commons Logging,日志管理模块。slf4j的接口定义几乎与Commons Logging 一模一样,只存在细微差别。
    • logback:相当于log4j,日志实现模块。
  2. 产生原因

    • 有人对 Commons Logging 接口不满意,于是产生了 SLF4J。
    • 有人对Log4j性能不满意,于是产生了 logback。
  3. 简单使用

    public class Main {
    public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(getClass());
    logger.info("start...");
    logger.warn("end.");
    }
    }
posted @   ThinkStu  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示