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 ...
随机推荐
- C# : 资源文件(多用于处理国际化)
1.建立Resource文件夹,添加资源文件 处理国际化的问题,我们可以添加多个资源文件,如下就是添加一个中文的,一个英文的. 2.向其中添加键值对. 3.取值 CultureInfo uiCultu ...
- BAT都来参加的 DevOps Master 培训
原文:http://www.sohu.com/a/128425731_262549 自高效运维社区开设 DevOps Master 认证培训以来,已经总共有120多人拿到证书,其中在今年春节后,有68 ...
- c++打印蛇形矩阵
一个m*n的矩阵里按照下图形式填充,最后形成的矩阵即为蛇形矩阵,下图是m=4, n =5时的蛇形矩阵: 方法一:逐层循环 #include <iostream> using namespa ...
- windows和linux下目录分隔符兼容问题(换行回车兼容)
windows和linux下目录分隔符兼容 DIRECTORY_SEPARATOR 换行回车兼容 PHP_EOF
- 初识C++之虚函数
1.什么是虚函数 在基类中用virtual关键字修饰.并在一个或多个派生类中被又一次定义的成员函数.使用方法格式为: virtual 函数返回类型 函数名(參数表) { 函数体 } 虚函数是实现多态性 ...
- iOS中文输入法多次触发的问题及解决方案
最近要在移动端实现一个文本框实时搜索的功能,即在文本框里每输入一个字,就向服务器请求一次搜索结果.暂且不考虑性能优化问题,第一时间想到的是用keyup实现: $('input').on('keyup' ...
- 启动avd Android模拟器缓慢 HAXM自动安装失败
问题1.更新Android sdk镜像,腾讯镜像地址 android-mirror.bugly.qq.com 使用方法如图 问题2.自动更新HAXM失败解决方法 手动下载地址 http://softw ...
- oracle浅析导致数据库性能问题的常见原因
㈠ 不合理的大表全表扫描 详见:点击打开链接 v$session_longops视图记录了超过6秒的所有SQL语句 这其中绝大部是全表扫描的语句! ㈡ 语句共享性不好 常出没在OLTP, ...
- Debian Epson L455 打印机
要使用打印机必须要在本机(或局域网其他机器)上安装打印服务,L455是网络打印机,需要IPP协议,而mDNS-scan和avahi-utils是用来发现网络打印机的服务,由于我是摸索着安装的,没太研究 ...
- eclipse +cygwin+C++
用Android eclipse做C++开发,一开始提示no binary的错误,貌似是因为没有编译二进制出来,我本机装了cygwin, 在命令台输入gcc,无显示,说明我没有把cygwin/bin的 ...