【Java】Java(四十八):日志

news2024/11/28 4:44:47

文章目录

  • 1. 概述
  • 2. 日志体系结构和Log4J
  • 3. 入门案例
  • 4. 配置文件详解



在这里插入图片描述

1. 概述


程序中的日志可以用来记录程序在运行的时候点点滴滴。并可以进行永久存储。

日志与输出语句的区别
在这里插入图片描述


2. 日志体系结构和Log4J

  • 体系结构
    在这里插入图片描述

  • Log4J
    Log4j是Apache的一个开源项目。
    通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件等位置。
    我们也可以控制每一条日志的输出格式。
    通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
    最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

  • Apache基金会
    Apache软件基金会(也就是Apache Software Foundation,简称为ASF),为支持开源软件项目而办的一个非盈利性组织。


3. 入门案例

  • 使用步骤

    1. 导入log4j的相关jar包
    2. 编写log4j配置文件
    3. 在代码中获取日志的对象
    4. 按照级别设置记录日志信息
  • 代码示例

    // 测试类
    public class Log4JTest01 {
    	//使用log4j的api来获取日志的对象
    	//弊端:如果以后我们更换日志的实现类,那么下面的代码就需要跟着改
    	//不推荐使用
    	//private static final Logger LOGGER =
    	Logger.getLogger(Log4JTest01.class);
    	//使用slf4j里面的api来获取日志的对象
    	//好处:如果以后我们更换日志的实现类,那么下面的代码不需要跟着修改
    	//推荐使用
    	private static final Logger LOGGER =
    	LoggerFactory.getLogger(Log4JTest01.class);
    	public static void main(String[] args) {
    	//1.导入jar包
    	//2.编写配置文件
    	//3.在代码中获取日志的对象
    	//4.按照日志级别设置日志信息
    	LOGGER.debug("debug级别的日志");
    	LOGGER.info("info级别的日志");
    	LOGGER.warn("warn级别的日志");
    	LOGGER.error("error级别的日志");
    	}
    }
    

4. 配置文件详解

  • 三个核心
    • Loggers(记录器) 日志的级别
      Loggers组件在此系统中常见的五个级别:DEBUG、INFO、WARN、ERROR 和 FATAL。
      DEBUG < INFO < WARN < ERROR < FATAL。
      Log4j有一个规则:只输出级别不低于设定级别的日志信息。
    • Appenders(输出源) 日志要输出的地方
      把日志输出到不同的地方,如控制台(Console)、文件(Files)等。
      • org.apache.log4j.ConsoleAppender(控制台)
      • org.apache.log4j.FileAppender(文件)
    • Layouts(布局) 日志输出的格式
      可以根据自己的喜好规定日志输出的格式
      常用的布局管理器:
      org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
      org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
      org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
  • 配置根Logger
    • 格式
      log4j.rootLogger=日志级别,appenderName1,appenderName2,…
    • 日志级别
      OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。
    • appenderName1
      就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。
      例如:log4j.rootLogger=INFO,ca,fa
  • ConsoleAppender常用的选项
    • ImmediateFlush=true
      表示所有消息都会被立即输出,设为false则不输出,默认值是true。
    • Target=System.err
      默认值是System.out。
  • FileAppender常用的选项
    • ImmediateFlush=true
      表示所有消息都会被立即输出。设为false则不输出,默认值是true
    • Append=false
      true表示将消息添加到指定文件中,原来的消息不覆盖。
      false则将消息覆盖指定的文件内容,默认值是true。
    • File=D:/logs/logging.log4j
      指定消息输出到logging.log4j文件中
  • PatternLayout常用的选项
    ConversionPattern=%m%n
    设定以怎样的格式显示消息





在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue实现导航栏功能的方法

在 Vue中实现导航栏功能&#xff0c;我们可以将导航栏作为一个单独的组件来实现。这样可以方便我们进行修改、定制&#xff0c;并有多种方式进行添加导航栏&#xff0c;如使用 Vue的 document. position属性或者使用vue-dialog-position属性来添加导航栏。在此&#xff0c;我们…

mac os终于成功安装MySQL

目录 PART 1. 下载MySQL PART 2. 安装MySQL PART 3. 启动MySQL 大家好&#xff0c;我是tin&#xff0c;一个热爱技术喜欢折腾的开发&#xff0c;欢迎阅读我的重磅肝文&#xff1a; 1. 面试官&#xff1a;你给我讲一讲&#xff0c;Dubbo暴力停机&#xff0c;消费者是如何感知…

机器学习知识经验分享之六:R语言绘图之小提琴图绘制

python语言用于深度学习较为广泛&#xff0c;R语言用于机器学习领域中的数据预测和数据处理算法较多&#xff0c;后续将更多分享机器学习数据预测相关知识的分享&#xff0c;有需要的朋友可持续关注&#xff0c;有疑问可以关注后私信留言。 文章目录 一、小提琴图 二、相关代…

node、node-sass和sass-loader版本错误问题 this.getOptions is not a function

安装node-sass和sass-loader后&#xff0c;使用npm run dev启动项目时一直报错。网上查明原因&#xff0c;是因为版本问题&#xff0c;但是修改node-sass和sass-loader版本后&#xff0c;又提示说node版本不兼容&#xff0c;我的node版本是18。随后又尝试了很多node-sass和sass…

【STM32CubeMX项目】STM32DHT11工程文件

前言 在我的另一篇里文章里已经介绍过DHT11的时序理论了&#xff0c;这里介绍下&#xff0c;我写DHT11的数据获取的思路和调用。程序验证后&#xff0c;发现下述问题&#xff0c;暂时解决不了&#xff0c;但是还是会把个人的代码流程&#xff0c;函数的编写思路和工程写下&…

蔚来的痛苦远未结束

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结 &#xff08;1&#xff09;蔚来5月份的交付数据没有计入ES6的订单情况 &#xff08;2&#xff09;蔚来现在面临的主要问题是销售成本在不断增长&#xff0c;残酷的事实是&#xff0c;蔚来资产负债表上的现金只能维持5…

在Windows中安装极狐GitLab Runner

官方文档&#xff1a;https://docs.gitlab.cn/runner/install/windows.html 在Windows中安装极狐GitLab Runner 1.下载GitLab Runner二进制文件&#xff0c;新建一个文件夹&#xff08;不要有中文&#xff09;&#xff0c;并将二进制文件放入该文件夹&#xff0c;重命名为“git…

django连接mysql

1.0app目录 1.pip 安装mysqlclient 2.在cmd里面新建一个django项目 3.在cmd里面新建一个app名字叫blogg 4.创建自己的数据库 django连接mysql 首建项目maneage里面setting的mysql配置 6.setting里面的installed_apps里面加上app的配置 7.app里面models模板的设置…

平面图学习

空调管道的设计&#xff1a;某景区有6个景点&#xff0c;位置分布如下图。 分析者认为&#xff1a;(1) A1与A4&#xff0c; (2) A2与A5&#xff0c; (3) A3与A6间人流较少&#xff0c;其它景点之间人流量大&#xff0c;必须投资铺设空调管道&#xff0c;但要求空调管道间不能交…

国密算法初探 | 入门教程 | 解析

国密算法即国家密码局认定的国产密码算法。 国密算法是商用密码&#xff0c;仅能用于商业用途。国密算法是一套标准&#xff0c;由国家密码局制定的规范&#xff0c;凡是符合的&#xff0c;都可以称之为国密算法。国密算法暂无官方的代码实现&#xff0c;企业可以自己编码实现…

用Numpy实现简单的神经网络

目录 数据预处理模型设计训练过程小批量随机梯度下降 用numpy实现神经网络对波士顿房价进行预测 假设房价和各影响因素之间能够用线性关系来描述&#xff1a; y ∑ j 1 M x j w j b y { \sum_{j1}^Mx_j w_j} b yj1∑M​xj​wj​b 模型的求解即是通过数据拟合出每个 w j w_…

使用思维导图做出Mybatis核心配置文件中各层及结构以及常用标签的意义和详细作用.

一、配置文件概述 Mybatis 配置文件两大类&#xff1a;1.Mybatis 主配置文件&#xff1b;2.Mybatis 的 mapper 文件 Mybatis 主配置文件&#xff1a; 提供 Mybatis 全局设置的。包含的内容、日志、数据源、mapper 文件位置等信息。Mybatis 的 mapper 文件&#xff1a; 写 sql …

linux 中的 gdb 调试方法和技巧(有截图超详细)

一、 背景 1. 程序的发布方式有两种&#xff0c;debug模式和release模式 2. Linux gcc/g出来的二进制程序&#xff0c;默认是release模式 3. 要使用gdb调试&#xff0c;必须在源代码生成二进制程序的时候&#xff0c;加上 -g 选项 如下图&#xff1a; 不加 -g 默认是 relea…

【Java】快速排序

文章目录 一、什么是快速排序二、基准元素的选择1、选择第一个元素2、随机选择 三、元素的交换1、双边循环法2、单边循环法 一、什么是快速排序 快速排序是由冒泡排序演变而来&#xff0c;比冒泡排序更快的排序算法。之所以快&#xff0c;是因为快速排序用了分治法。 相同的是…

基于均值方差最优化资产配置的模型特性

摘要及声明 1&#xff1a;本文主要利用实际数据进行检验&#xff0c;从定量角度分析均值方差最优化的特性&#xff1b; 2&#xff1a;本文主要为理念的讲解&#xff0c;模型也是笔者自建&#xff0c;文中假设与观点是基于笔者对模型及数据的一孔之见&#xff0c;若有不同见解…

Linux最小安装网络配置、jdk安装以及虚拟机克隆的操作(超详细过程)

一、最小安装配置网络 1、配置文件&#xff1a; 进入“/etc/sysconfig/network-scripts”目录&#xff0c;查看当前目录下的“ifcfg-ens33”文件 对“ens33”文件进行配置 2、重启网络&#xff1a; 使用“systemctl restart network”命令即可 3、ping网络&#xff0c;如果…

【Proteus仿真】51单片机+步进电机驱动

【Proteus仿真】51单片机步进电机驱动 &#x1f516;Proteus仿真基础实验-步进电机驱动&#x1f33f;Proteus8.12平台 &#x1f4cb;步进电机简介 步进电机是一种将电脉冲转换为角位移的开环控制元步进电机。一般地&#xff0c;当步进驱动器接收到脉冲信号时&#xff0c;它将根…

企业邮箱购买指南:分享如何购买适合企业的企业邮箱

如果你想为你的公司设立一个新的公司邮箱帐户&#xff0c;有几种不同的选择可供选择。根据公司的规模和需求&#xff0c;你可以从邮箱托管公司购买一个邮箱地址&#xff0c;购买域名并创建一个自定义邮箱地址&#xff0c;或者与第三方提供商合作。无论您选择哪种方法&#xff0…

服务(第三十四篇)ceph-分布式存储

什么是ceph&#xff1f; ceph 是一种统一的分布式文件系统&#xff0c;具有优秀的性能、高可用性和可扩展性。ceph 的统一体现在可以提供文件系统、块存储和对象存储&#xff0c;分布式体现在可以动态扩展。在国内一些公司的云环境中&#xff0c;通常会采用 ceph 作为 openstac…

机器学习强基计划10-2:详细推导串行集成AdaBoost算法(附Python实现)

目录 0 写在前面1 串行集成学习2 AdaBoost原理推导3 Python实现3.1 算法流程3.2 核心代码3.3 可视化 0 写在前面 机器学习强基计划聚焦深度和广度&#xff0c;加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理&#xff1b;“广”在分析多个机器学习模…