Java进阶学习:log4j的学习和使用
Java进阶学习——log4j的学习和使用
简介Loj4j
Log4j的组成
Log4j主要由三大组组件构成:
- Logger:
- 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息应该被输出,什么日志信息应该被忽略。
- Appender:
- 定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以是控制台、文件或网络设备等。
- Layout:
- 指定日志信息的输出格式。
说明:
一个Logger可以有多个Appender,这意味着日志信息可以被输出到多个设备上,并且每个Appender都对应一种Layout,Layout决定了信息的输出格式。
定义配置文件
要在应用程序中使用Log4j,首先要在一个配置文件中配置Log4j的各个组件,然后就可以在程序中通过Log4jAPI操作日志。
Log4j支持编程方式、XML文件、属性文件对组件进行配置,我们在此处使用属性文件进行配置:
log4j.rootLogger = DEBUG,rootAppender,FileAppender #rootLogger是所有Logger组件的祖先 log4j.logger.MyLogger =DEBUG,rootAppender,FileAppender #自定义的Logger组件 #配置Appender log4j.appender.rootAppender = org.apache.log4j.ConsoleAppender log4j.appender.FileAppender = org.apache.log4j.FileAppender log4j.appender.DailyRollingFileAppender = org.apache.log4j.DailyRollingFileAppender log4j.appender.RollingFileAppender = org.apache.log4j.RollingFileAppender log4j.appender.WriterAppender = org.apache.log4j.WriterAppender #配置FileAppender的文件保存位置 log4j.appender.FileAppender.File=log.txt #配置Layout组件 log4j.appender.rootAppender.layout = org.apache.log4j.SimpleLayout log4j.appender.FileAppender.layout = org.apache.log4j.PatternLayout log4j.appender.FileAppender.layout.ConversionPattern = %t %p - %m%n
在程序中使用Log4j
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Main {
//获得RootLogger
static Logger logger = Logger.getRootLogger();
public static void main(String[] args) {
//BasicConfigurator.configure(); 使用默认的配置信息配置Log4j环境
//使用属性文件配置Log4j环境
PropertyConfigurator.configure(Main.class.getResource("log4j.properties"));
//Logger的五种输出级别日志
logger.fatal("致命错误级别日志");
logger.error("错误级别日志");
logger.warn("警告级别日志");
logger.info("提醒级别日志");
logger.debug("调试级别日志");
}
}
Java进阶学习:log4j的学习和使用的更多相关文章
- Java进阶学习:将文件上传到七牛云中
Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...
- Log4j简单学习笔记
log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 201521123051 《Java程序设计》 第二周学习总结
1. 本周学习总结 1.学会使用码云:学会如何将项目同步到码云中以及从码云上的项目保存到本地. 2.各数据类型的使用. 3.运算符和表达式的使用. 4.string创建之后不可在修改. 5.Java程 ...
- 201521123011 《Java程序设计》 第二周学习总结
1. 本周学习总结 记录本周学习中的重点 原则:少而精,自己写.即使不超过5行也可,但请一定不要简单的复制粘贴. 知道了c语言中string的定义与java不同的地方. 学习了枚举,数组等方法 Tnt ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
非常荣幸作为晓峰哥的同事,之前就看过这篇文章,重写读一遍,再学习学习. 一.开篇词 初级.中级:java和计算机科学基础.开源框架的使用:高级.专家:java io/nio.并发.虚拟机.底层源码.分 ...
- 20155334 2016-2017-2 《Java程序设计》第九周学习总结
20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...
随机推荐
- java8 lambda 与 stream
参见:https://www.bilibili.com/video/av14372754/?p=2
- 用二十秒记住几个PHP基础知识点
数组: 索引数组:数组的键是整数的数组,从0開始. 关联数组:数组的键是字符串的数组 //索引数组 $arr=array('I','love','you'); //关联数组 $arr0=array(' ...
- 为什么要上大四???why
毕业证 即将要上大四了.近期一直在思考,毕业证对于我有什么作用呢?我从来不忌讳表露自己的观点.哪怕这个观点是错误的. 如今这个观点,想必又要激起无数人对我的责骂吧? 但是毕 ...
- 关于解决 http 状态码200,php 文件有输出,但是不显示模板文件的问题
一 问题 给公司搭建一个在线测试站点之后,在浏览器地址栏输入 "http://xxx.xxx.xxx/index.php",页面什么都没显示.调出浏览器的开发者工具查看,http ...
- Ffmpeg音频转码 卡顿(MP2转AAC)
最好经手一个小的功能将mp2实时流转成AAC并发布成rtmp音频流,本身不是很难的一个需求, 一个晚上就能将功能开发好.功能开发完毕后,找来一音频文件利用Ffmpeg命令将音视频文件推成 实时udp格 ...
- Android:使用ZXing生成二维码(支持加入Logo图案)
ZXing是谷歌的一个开源库.能够用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing ...
- 用第三方下载工具下载官方XCode独立安装包的方法
用第三方下载工具下载官方XCode独立安装包的方法 下载步骤 下载 aria2 工具配置好并启动 (利用其支持配置Cookie并多线程下载的功能.而迅雷则不支持设置Cookie,所以不支持这种需要登录 ...
- k8s调度-指定node
1.给node加标签 kubectl label nodes k8s-slave2 slave= 2.查看标签 [root@k8s_master centos7]# kubectl describe ...
- COM线程单元
节选自C#高级编程 不管是单线程单元还是多线程单元,一个线程只能属于一个单元. 1) 单线程单元(apartment, 寓所,套间) 单线程单元与它拥有的线程是一对一的关系.COM对象在编写时不是线程 ...
- XSD文件详解
XSD (xml Schema Definition) Xml Schema的用途 1. 定义一个Xml文档中都有什么元素 2. 定义一个Xml文档中都会有什么属性 3. 定义某个节点的都有什么 ...