当前位置: 首页 > news >正文

Java 日志

日志就是为了将程序的运行状况保存到文件中去。

命名的一个小细节:

比如把信息保存到文件中这个方法的名字可以写为infoToFile,有个人为了偷懒,写成info2File,发现效果还挺好,一下就能分清两个单词,所以后续也就出现了用2代替To,4代替for,然后读的时候不读数字,还是原英文。

接下来详细学习日志:

我们主要学习如何使用Logback。

先来了解一下:

1、下载jar包

首先Logback是第三方写好的库,我们要使用的话先去官网下载对应的jar包,如何下载可以参考这个博客:Java012-Logback日志框架下载、使用以及日志级别_logback下载-CSDN博客

2、导包

首先创建一个Lib包,把3个jar包放到Lib包下,按住crtl不松,然后把3个jar包都点一个就可实现全选,最后Add as Library。

可以看到导入成功:

3、将Logback的核心配置文件logback.xml直接拷贝到src目录下(必须是src目录下)

介绍一下logback.xml文件的主要内容:

(1)CONSOLE表示日志信息输出到控制台。

(2)FILE则表示日志信息输出到文件在,与此同时就需要指明文件的路径。

日志文件的路径有些放到了C盘的路径下,可能C盘的权限比较高,IDEA是进不去的,所以可以改为权限较低的其他盘。

4、在代码中获取日志的对象与使用

获取日志对象Logger logger = LoggerFactory.getLogger(“类名”); 一般在类名后加.class。

代码:

public class Demo1 {public static final Logger LOGGER = LoggerFactory.getLogger("Demo.class");public static void main(String[] args) {LOGGER.error("出错啦error");LOGGER.warn("警告!warn");LOGGER.info("收账啦info");LOGGER.debug("没出错!debug");LOGGER.trace("跟踪中trace");}
}

输出结果,我这里只看到了控制台的日志信息,没有在硬盘下的目录中找到日志文件,也不知道为什么,不想找了。 

关于第4步一些细节:

①在使用Logger对象的时候要注意是org.slf4j.Logger下的,如果导错了会有一些问题出现。

②日志对象用public修饰,是不能放到方法里面的,因为局部变量是不可以用权限修饰符的,所以将其放到外面作为成员变量就可以了。

5、日志的级别

有时候并不是所有的信息都想以日志的形式进行输出的,所以可以设置日志的输出级别。有5种级别,分别是TRACE<DEBUG<INFO<WARN<ERROR(可以忽略大小写),这是从大到小进行排列的效果。

logback.xml文件中level可等于TRACE、DEBUG、INFO、WARN、ERROR、ALL、OFF或不写。
(1)默认级别是debug(即可不写level=“DEBUG”);
(2)低于当前级别的信息是不进行输出的;
(3)ALL和OFF分别是打开全部日志和关闭全部日志。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • js逆向-实现哈希算法
  • 谈一谈MVCC
  • 基于 Konva 实现Web PPT 编辑器(二)
  • .Net Core 笔试1
  • C++入门基础篇
  • GO语言快速入门(比较乱)
  • Ansible变量与模板的高级使用技巧
  • 2024 RustChinaConf 赞助商介绍
  • 线程可见性问题?还是编译优化问题?
  • golang fmt.Printf中 %q
  • 【React】Vite 构建 React
  • Zustand 状态调试以及持久话
  • SpringBoot与Minio的极速之旅:解锁文件切片上传新境界
  • pytorch torch.matmul函数介绍
  • 基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例
  • [译]CSS 居中(Center)方法大合集
  • “大数据应用场景”之隔壁老王(连载四)
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 2017届校招提前批面试回顾
  • Android单元测试 - 几个重要问题
  • Asm.js的简单介绍
  • Consul Config 使用Git做版本控制的实现
  • Flannel解读
  • javascript从右向左截取指定位数字符的3种方法
  • Linux gpio口使用方法
  • MySQL QA
  • Python爬虫--- 1.3 BS4库的解析器
  • React系列之 Redux 架构模式
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SQLServer插入数据
  • SQLServer之索引简介
  • TypeScript迭代器
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 工作中总结前端开发流程--vue项目
  • 前端
  • 前端学习笔记之观察者模式
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  •  一套莫尔斯电报听写、翻译系统
  • mysql面试题分组并合并列
  • ## 基础知识
  • #android不同版本废弃api,新api。
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #define 用法
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #预处理和函数的对比以及条件编译
  • (003)SlickEdit Unity的补全
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (四)事件系统