码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java日志


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

    文章目录

        • 一、为什么使用日志?
        • 二、使用 JDK Logging
        • 三、使用 Commons Logging + log4j
        • 四、使用 SLF4J + logback


    一、为什么使用日志?

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

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

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


    二、使用 JDK Logging

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

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

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

        -Djava.util.logging.config.file=

      • 日志系统会在 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...");
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

    三、使用 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.");
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

    四、使用 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.");
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
  • 相关阅读:
    计算机毕业设计python企业员工人事管理系统vue
    【kerberos】使用 curl 访问受 Kerberos HTTP SPNEGO 保护的 URL
    使用kubeadm搭建高可用集群-k8s相关组件及1.16版本的安装部署
    让你真实的看见 TCP 三次握手和四次挥手到底是什么样!
    第9章 K8s进阶篇-持久化存储入门
    java毕业设计车险销售管理系统mybatis+源码+调试部署+系统+数据库+lw
    【名词解释】concolic testing和instrumentation
    JS-WebAPI练习
    目标检测论文、代码、数据集汇总
    RK3568平台开发系列讲解(安卓适配篇)Android 源码的 device 目录
  • 原文地址:https://blog.csdn.net/qq_35760825/article/details/126394803
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号