章节十五、7- 配置文件-Console Logging
一、创建xml文件
1、创建xml文件
在项目中我们需要专门建一个文件夹来放xml文件或者是其它文件。

2、然后对文件夹进行命名

3、选择new 其它

4、选择XML File

5、给xml文件命名为log4j2.xml

6、创建成功

二、使用xml格式来定义配置文件
开始写标签

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<!-- appenders表示日志存放的位置 -->
<Appenders>
<!-- 表示在控制台上输出信息 -->
<Console name="Console">
<!-- 设置我们需要输出信息,输出的风格是怎么样的 -->
<PatternLayout
pattern="%d{HH:mm:ss.SSS} %-5level %c{1} -%msg%n%" />
</Console>
</Appenders>
<Loggers>
<!-- 定义级别 -->
<Root level="info">
<!-- 输出日志的目的地 -->
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
注:
1、<Console name="Console">:name="Console"表示给“Console”取名字。
2、<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %c{1} -%msg%n%" />:
%d{HH:mm:ss.SSS} 表示输出到毫秒的时间
%-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0
%c{1}表示输出当前类名(填写“2”,表示输出该类的类名和所在包名。“3”表示输出所在的包和所在包的上级包名)
%msg 日志文本
%n 换行
其他常用的占位符有:
%F 输出所在的类文件名,如Client.java
%L 输出行号
%M 输出所在方法名
%l 输出语句所在的行数, 包括类名、方法名、文件名、行数
3、<AppenderRef ref="Console" />:Console是<Appenders>的名字,表示输出的目的地,这样rootlog就会使用配置的<Appenders>来记录log信息。
三、日志输出
1、无配置文件时控制台的报错信息展示(红色字体报错提示找不到配置文件):

2、有配置文件输出时信息展示:
a、首先我们需要将配置文件build一下


b、然后clean一下


c、运行代码
package log4jtutorial; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; public class LoggingConsole{ // 首先需要定义一个log对象
// 定义成static final是因为只需要这一个实例,不能再有子类,多次调用的都是这一个实例,所以我们可以一直用这个对象来记录日志,不需要创建新的对象。
// .getLogger()方法返回的是一个Logger对象实例
// 括号里面的参数用来记现在所在的类(LoggingDemo.class.getName())
private static final Logger log = LogManager.getLogger(LoggingDemo.class.getName()); public static void main(String[] args) {
log.debug("Debug message logged");
log.error("Error message logged");
log.fatal("Fatal message logged"); }
}
d、运行代码(可以看出此次没有红色错误提示,证明配置日志文件成功)

注:
在代码中我们设置了打印“debug、error、fatal”,但控制台实际却只打印了“error、fatal”,这是因为我们在配置文件中设置了只打印info级别以上的日志,如果我们把“info”换成“trace”
就能够将3个级别的日志都打印出来。

更换级别后的打印结果:

如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。
内容具有连惯性,未标注的地方可以看前面的博客,这是一整套关于ava+selenium自动化的内容,从java基础开始。
欢迎关注,转载请注明来源。
章节十五、7- 配置文件-Console Logging的更多相关文章
- 章节十五、8-配置文件File Logging
		一.如何将log输出到文件中? 1.配置xml文件 <?xml version="1.0" encoding="UTF-8"?> <Confi ... 
- 章节十五、5-记录日志---Log4j
		一.为什么要用Log4j记录日志? 日志记录对于任何应用程序都非常重要. 它可以帮助我们快速调试代码,通过收集代码执行的信息让代码容易维护. 二.Log4j 是什么? Apache为Java提供的日志 ... 
- 章节十五、9-自定义Loggers
		一.如何给不同的包设置不同的日志级别? 1.针对不同的包来记录不同级别的日志信息 2.在日志xml配置文件中加入配置信息(红色标注) <?xml version="1.0" ... 
- 章节十五、6-log4 2-用默认的配置
		一.实例演示 package log4jtutorial; import org.apache.logging.log4j.LogManager; import org.apache.logging. ... 
- 章节十五、3-对象仓库、Page Factory实例应用
		一.如何创建对象仓库 package pageclasses; import org.openqa.selenium.WebDriver; import org.openqa.selenium.Web ... 
- 章节十五、2-PageObjectModel
		一.在实现自动化过程中,会有很多重复的代码,我们在维护代码时会很困难,如果想解决这个问题,我们就需要使用PageObjectModel(页面对象模型)的方式来进行自动化代码的书写. 二.案例演示 以该 ... 
- centos  lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress  安装phpmyadmin  定时备份mysql两种方法  第二十五节课
		centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节 ... 
- Ext JS学习第十六天 事件机制event(一)  DotNet进阶系列(持续更新)  第一节:.Net版基于WebSocket的聊天室样例  第十五节:深入理解async和await的作用及各种适用场景和用法  第十五节:深入理解async和await的作用及各种适用场景和用法  前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
		code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ... 
- thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)
		原文:thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成(十五) 本章节:详细介绍thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成 一.URL ... 
随机推荐
- WordPress教程之如何入门WordPress
			这篇文章将介绍如何设置 WordPress,并自定义其基本功能.WordPress 的安装包相对较小(低于 10 MB),非常易于安装和管理.为了托管自己的网站,你可以获得几个不同的选项. 你可以通过 ... 
- 【linux杂谈】在SSH连接中,openssh如何解决'Connection refused'错误?
			openssh是SSH (Secure SHell) 协议的免费开源实现.SSH协议族可以用来进行远程控制, 或在计算机之间传送文件. 这就意味着远程登陆,文件推拉特别是搭建集群后公钥的部署,经常要利 ... 
- Web前端——JavaScript扩展补充
			JS补充 document也是windows的一个子对象 a标签点击事件 要想设置点击a标签,执行某种方法,推荐在a标签的herf属性使用JavaScript伪协议,实现点击之后执行的js方法,而不是 ... 
- Spark 的 python 编程环境
			Spark 可以独立安装使用,也可以和 Hadoop 一起安装使用.在安装 Spark 之前,首先确保你的电脑上已经安装了 Java 8 或者更高的版本. Spark 安装 访问Spark 下载页面, ... 
- STM32F072从零配置工程-串口USART配置
			也是使用HAL库进行配置,通过STMCube生成代码,可以通过这个简单的配置过程看到STMCube生成代码的一种规范: 从main函数入手观察其外设配置结构: 首先是HAL_Init()进行所有外设的 ... 
- java学习笔记(基础篇)—java数组
			一:什么是数组,什么时候使用数组? 数组是用来保存一组数据类型相同的元素的有序集合,数组中的每个数据称为元素.有序集合可以按照顺序或者下标取数组中的元素. 在Java中,数组也是Java对象.数组中的 ... 
- 列表  元组  range
			2019 年 7 月 9 日 列表---list------容器 列表:存储数据,支持多个数据类型,比如 :字符串 数字 布尔值 列表 集合 元组  特点 : 有序 可变 支持索引 (定义一个列表不 ... 
- 「数据分析」Sqlserver中的窗口函数的精彩应用-问题篇
			最近看到PowerBI圈子在讨论最大连续区间段的问题,即某人最大的全勤时间,某人的最长的连续打卡时间等问题的计算,佐罗老师给出了10万倍性能的答案.这个问题也引发了笔者一些兴趣,隐约记得以前看过Sql ... 
- MVC+EFCore 完整教程18 -- 升级分布视图至 View Component
			之前我们详细介绍过分布视图(partial view),在有一些更加复杂的场景下,.net core为我们提供了更加强大的组件 view component, 可以认为view component是 ... 
- python课堂整理5---元组
			一.元组 Tuple tu = (111, 22, 33, "alex", (11,22), [(33, 44)], True, ) 元组元素不可被修改,不能被增加或删除 一般 ... 
