日志-Log4J

日志:

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

日志和输出语句的区别:
输出语句日志技术
取消日志需要修改代码,灵活性比较差不需要修改代码,灵活性比较好
输出位置只能是控制台可以将日志信息写入到文件或者数据库中
多线程和业务代码处于一个线程中多线程方式记录日志,不影响业务代码的性能

在这里插入图片描述

Log4J作用:
  1. 通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件等位置
  2. 可以控制每一条日志的输出格式
  3. 通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程
  4. 可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码
日志核心技术:

Loggers(记录器) 日志的级别

  • Loggers组件在此系统中常见的五个级别:DEBUG、INFO、WARN、ERROR 和 FATAL。
  • DEBUG:开发过程打印一些基本的信息
  • INFO:开发过程打印一些重要的信息
  • WARN:警告,可能会出现问题,给出一些提示
  • ERROR:发生错误,但是不影响程序继续运行
  • FATAL:严重的错误,程序会被停止
  • DEBUG < INFO < WARN < ERROR < FATAL。
  • Log4j有一个规则:只输出级别不低于设定级别的日志信息。对应上面的级别
  • 比如配置文件定义了一个INFO级别的,那么 DEBUG的就不会被输入,如果遇到输出不了的问题,可以看看是不是配置的级别太高了

配置文件:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.ca.ImmediateFlush=true
log4j.appender.ca.Target=System.er
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

测试类:

public class Demo05 {//使用log4j的api来获取日志的对象//弊端:如果以后我们更换日志的实现类,那么下面的代码就需要跟着改//不推荐使用// private static final Logger LOGGER = Logger.getLogger(Demo05.class);//使用slf4j里面的api来获取日志的对象//好处:如果以后我们更换日志的实现类,那么下面的代码不需要跟着修改//推荐使用private static final Logger LOGGER = LoggerFactory.getLogger(Demo05.class);public static void main(String[] args) {LOGGER.debug("debug级别的日志");LOGGER.info("info级别的日志");LOGGER.warn("warn级别的日志");LOGGER.error("error级别的日志");}
}

Appenders(输出源)

Appenders:日志要输出的地方

  • 把日志输出到不同的地方,如控制台(Console)、文件(Files)等。
  • org.apache.log4j.ConsoleAppender(控制台)
  • org.apache.log4j.FileAppender(文件)

Layouts(布局) 日志输出的格式

常用的布局管理器:

可以根据自己的喜好规定日志输出的格式

  • org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
  • org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
  • org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
配置文件:

格式:

  1. log4j.rootLogger=日志级别,appenderName1,appenderName2,…
  2. 日志级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。
    OFF:关闭所有日志
    ALL:展示所有日志
  3. appenderName1 就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。
    例如:log4j.rootLogger=INFO,ca,fa

ConsoleAppender(往控制台输出)常用的选项

  1. ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
  2. Target=System.err 默认值是System.out。
    System.err是错误输出流,打印的是红色的

FileAppender(往文件输出)常用的选项

  • ImmediateFlush=true:表示所有消息都会被立即输出。设为false则不输出,默认值是true
  • Append=false
    true表示将消息添加到指定文件中,原来的消息不覆盖。
    false则将消息覆盖指定的文件内容,默认值是true。
  • File=D:/logs/logging.log4j: 指定消息输出到logging.log4j文件中

PatternLayout常用的选项

  • log4j.PatternLayout:可以灵活的指定布局模式,最常使用
  • log4j.SimpleLayout:包含日志信息的级别和信息字符串
  • log4j.TTCCLayout:包含日志产生的时间、线程、类别等信息

ConversionPattern=%m%n设定以怎样的格式显示消息

在这里插入图片描述

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

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

相关文章

VMware安装虚拟机Mac版

VMware&#xff1a; 1、不需要分区或重开机就能再同一台PC上使用多种操作系统。 2、完全隔离并且保护不同操作系统的环境以及所有软件、资料。 3、不同的操作系统之间还能互动操作 4、有复原功能 5、能够设置并且随时修改操作系统的操作环境 下载地址&#xff1a;https://www.v…

黑暗之魂3正在从服务器获取信息,黑暗之魂3如何解决入侵服务器问题 | 手游网游页游攻略大全...

发布时间&#xff1a;2016-01-04今天为大家带来的是黑暗之魂3法兰守卫入侵方法,一起来看看吧! 黑暗之魂3 法兰守卫入侵方法 法兰守卫怎么入侵 今天为大家带来的是黑暗之魂3法兰守卫入侵方法,一起来看看吧! 你的游戏可能被防火墙禁止了——解决方法:找到你的 ...标签&#xff1a…

webpack之font-awesome

1、安装font-awesome和font-awesome-loader及依赖 git&#xff1a;https://github.com/shakacode/font-awesome-loader npm install font-awesome-loader less less-loader css-loader style-loader file-loader font-awesome -save 2、配置webpack 官方给出的webpack2.0配置如…

目录命令及权限

目录命令及权限&#xff1a; 命令说明ls列出目录cd切换目录pwd显示目前的目录mkdir创建新目录rmdir删除一个空的目录cp复制文件或目录rm移除文件或目录mv移动文件与目录或修改文件与目录的名称 ls列出目录&#xff1a; ls # 显示不隐藏的文件和文件夹 ls -l # 显示不隐藏的…

前端通信:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码(改迭代已作废,移步迭代10)...

该迭代已作废&#xff0c;最新的请移步这里&#xff1a;https://www.cnblogs.com/GerryOfZhong/p/10726306.html 距离上一篇博客书写&#xff0c;又过去了大概几个月了&#xff0c;这段时间暂时离开了这个行业&#xff0c;让大脑休息一下。一个人旅行&#xff0c;一个人休息&am…

设计模式之 - 代理模式(Proxy Pattern)

代理模式&#xff1a;代理是一种常用的设计模式&#xff0c;其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息&#xff0c;过滤消息并转发消息&#xff0c;以及进行消息被委托类执行后的后续处理。很多可以框架中都有用到&#xff0c;比…

JavaEE规范与系统结构

JavaEE规范&#xff1a; JavaEE规范是J2EE规范的新名称&#xff0c;早期被称为J2EE规范&#xff0c;其全称是Java 2 Platform Enterprise Edition&#xff0c;它是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准&#xff08;JCP组织成员&#xff09;。之所以改名为Jav…

HTTP协议和NDS服务器

HTTP协议&#xff1a; HTTP的全称是&#xff1a;Hyper Text Transfer Protocol&#xff0c;意为超文本传输协议。它指的是服务器和客户端之间交互必须遵循的一问一答的规则。形容这个规则&#xff1a;问答机制、握手机制。它规范了请求和响应内容的类型和格式。HTTP协议是由W3C…

Servlet方法详解

Servlet&#xff1a; Servlet是SUN公司提供的一套规范&#xff0c;名称就叫Servlet规范&#xff0c;它也是JavaEE规范之一。使用JavaEE的API。目前在Oracle官网中的最新版本是JavaEE8&#xff0c; Servlet是一个运行在web服务端的java小程序它可以用于接收和响应客户端的请求要…

继承的实现原理

一.继承的实现原理 1.继承顺序 1.1单独分叉线路&#xff1a;经典类与新式类依次从左到右&#xff0c;深度优先 1.2多条重合线路&#xff1a;经典类一路到头&#xff0c;深度优先&#xff1b;新式类&#xff0c;广度优先。<参考MRO列表&#xff0c;仅在新式类有> class A(…

Response响应方法详解

Response&#xff1a; 响应&#xff1a;服务器把请求的处理结果告知客户端。在B/S架构中&#xff0c;响应就是把结果带回浏览器。响应对象&#xff1a;在项目中用于发送响应的对象 常用状态码&#xff1a; 状态码说明200执行成功302它和307一样&#xff0c;都是用于重定向的状…

perl6 HTTP::UserAgent (2)

http://www.cnblogs.com/perl6/p/6911166.html 之前这里有个小小例子&#xff0c; 这里只要是总结一下。 HTTP::UserAgent包含了以下模块: ---------------------------------------------------------------------------------------------- Module |Path-Nam…

Java会话技术

会话技术&#xff1a; 会话指的是客户端浏览器和服务端之间的度偶次请求和响应当打开浏览器&#xff0c;访问网站地址后&#xff0c;会话开始&#xff0c;当关闭浏览器&#xff08;或者到了过期时间&#xff09;&#xff0c;会话结束。就像打电话只要不挂电话就是一次会话。 会…

【调用IP宏文件进行仿真】modelsim仿真时出现 Instantiation of 'xxx' failed. The design unit was not found....

出现错误类似&#xff1a;modelsim 仿真fifo时出现 Error: (vsim-3033) E:/Programs/ModelSim/fifo/ps2_fifo.v(75): Instantiation of scfifo failed. The design unit was not found.仿真波形不对&#xff0c;调用的ip核没有输出&#xff08;白色虚线&#xff09;等情况&…

Java Server Page

JSP JSP全称是Java Server Page&#xff0c;基于Java和Servlet一样是sun公司推出的一套开发动态web资源的技术&#xff0c;称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。jsp是一种动态网页技术标准&#xff0c;jsp部署在服务器上可以处理客户端的请求&#xff0c;并根据…

HDFS概述(2)————Block块大小设置

参考&#xff1a;HDFS概述&#xff08;4&#xff09;————HDFS权限HDFS概述&#xff08;3&#xff09;————HDFS FederationHDFS概述&#xff08;2&#xff09;————Block块大小设置HDFS概述&#xff08;1&#xff09;————HDFS架构问题Q: 一个常被问到的一个问题是…

BZOJ 1083: [SCOI2005]繁忙的都市【Kruscal最小生成树裸题】

1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2925 Solved: 1927[Submit][Status][Discuss]Description 城市C是一个非常繁忙的大都市&#xff0c;城市中的道路十分的拥挤&#xff0c;于是市长决定对其中的道路进行改造。城市C的道 路是这样分…

Mysql介绍与安装LinuxmacOS系统

数据库&#xff1a; 用于存储和管理数据的仓库 数据库的好处&#xff1a; 可以持久化存储数据方便存储和管理数据使用了统一的方式操作数据库 – SQL 常见的数据库&#xff1a; Oracle&#xff1a;收费的大型数据库&#xff0c;Oracle公司的产品。Oracle收购SUN公司&#xff0c…

如何查看Laravel版本号的三种方法

1.PHP artisan --version 2.vim vendor/laravel/framework/src/Illuminate/Foundation/Application.php 3&#xff1a;可以写在路由里 5.4版本的路由文件夹是routes。我们可以写在routes\web.php里。 Route::get(laravel-version, function(){ $laravel app(); return…

02_反汇编_反编译

实际上安卓的应用都是zip包,只不过把zip扩展名修改了,修改成了APK.所以如果你想拿到它的图片的话,实际上特别简单&#xff0c;你就把它这个.apk换成.zip.换成.zip之后这里的图片资源就都可以拿到了. 有些公司可能美工的水平或者美工的人数比较少&#xff0c;项目还比较急&#…