Log4j自学笔记

log4j十一个开源的日志记录组件,在工程中用于代替System.out语句。
它允许开发人员以任意的精细程度控制哪些日志说明被输出,通过使用外部的配置文件,可以在运行的时候配置它。
Log4jPO有三个主要的组件:Loggers(记录器)、Appenders(输出源)、Layout(布局),可以简单的理解为日志类别,日志要输的地方、输出的格式。

Loggers组件在此系统中被分为五个级别:DEBUG<INFO<WARN<ERROR<FATAL。这五个级别是有顺序的。
DEBUG Log4j有一个规则:假设Loggers级别为P,如果在Loggers中发生了一个级别Q比P高,则可以启动,否则屏蔽掉。

有时用户希望根据自己的喜好格式化自己的日志输出。Log4j可以在Appenders的后面附加Layouts来完成这个功能。
Layouts提供了 四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。

import org.apache.log4j.BasicConfigurator; //需将jar文件引入到classpath之中
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
public class Log4jTest {
public static void main(String args[]){
Logger logger = Logger.getLogger(Log4jTest.class);
BasicConfigurator.configure();
logger.setLevel(Level.WARN); //配置根Logger,设置等级,只有等级以上的才可以输出,通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
logger.info("This is an info.");
logger.warn("This is an wanrning.");
logger.error("This is an error.");
logger.fatal("This is an fatal error.");
return;
}
}

Log4j的配置  

1、建立Logger实例:
Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ()) ; 
2、读取配置文件:
获得了Logger的实例之后,接下来将配置Log4j使用环境:
  BasicConfigurator.configure(); //自动快速地使用缺省Log4j环境。
  PropertyConfigurator.configure(String configFilename); //读取使用Java的特性文件编写的配置文件。
  DOMConfigurator.configure(String filename); //读取XML形式的配置文件。
实际使用:
PropertyConfigurator.configure("ServerWithLog4j.properties");
3、插入日志信息
  完成了以上连个步骤以后,下面就可以按日志的不同级别插入到你要记录日志的任何地方了。
  Logger.debug(Object message); //调试信息
  Logger.info(Object message); //一般信息
  Logger.warn(Object message); //警告信息
  Logger.error(Object message); //错误信息
  Logger.fatal(Object message); //致命错误信息

配置日志信息输出目的地,其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class //
"fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个:
1.org.apache.log4j.ConsoleAppender(控制台)
2.org.apache.log4j.FileAppender(文件)
3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

配置日志信息的格式,其语法为:
A. log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
"fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个:
1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),
2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

理解下面的三者的关系:
Log4j
Apache commons logging
java log dpi

Log4j自学笔记

时间: 2024-07-31 15:06:48

Log4j自学笔记的相关文章

斯坦福大学机器学习(Andrew [email&#160;protected])--自学笔记

今天学习Andrew NG老师<机器学习>之6 - 6 - Advanced Optimization,做笔记如下: 用fminunc函数求代价函数最小值,分两步: 1.自定义代价函数 function [jVal,gradient] = costFunction(theta)jVal = (theta(1)-5)^2 + (theta(2)-5)^2;gradient = zeros(2,1);gradient(1) = 2*(theta(1)-5);gradient(2) = 2*(the

CSS自学笔记(3):CSS样式表的使用

当浏览器读到一个样式表时,浏览器会根据这个样式表来格式化html文档,从而表现出各式各样的网页. 想要浏览器读到样式表,有三种方法: 1.外部样式表 外部样式表可以理解为.CSS文件.当多个页面使用同一个样式的时候,外部样式表是一个很理想的选择. 在使用外部样式表的情况下,可以通过改变一个文件来改变整个站点的外观,无需在调整html文件,尤其是多个页面使用同一个样式的时候. 每个html页面使用标签<link>来连接外部样式表: <head> <link rel="

python自学笔记

python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 循环 6.使用dict和set 6.1 dict 6.2 set 7.函数的使用 7.1函数返回多个值,同时接受多个值 7.2函数参数的默认值 7.3可变参数的函数 7.4可变个数带参数名的入参 7.5参数类型组合 8.关于函数递归 9.python的高级特性 9.1切片 9.2遍历 9.3列表生

CSS自学笔记(5):CSS的样式

CSS中拥有各种各样的样式表,而基本的样式有背景,文本,字体,链接,列表,表格,轮廓. 一.CSS-背景 CSS中允许用纯色背景,也允许用图片来创建复杂的个性背景. p {background-color: #000;} 是用纯色作为背景.这时你可以定义其他属性,生成不同效果的背景. CSS中也可以用图片作为背景,这是就需要使用background-image属性了,如果属性值为一个URL值,并且图片文件存在,那么就可以看到用该图片做为背景的网页了 body {background-image:

Android自学笔记-16-任务栈

题目链接:http://acm.fzu.edu.cn/problem.php?pid=2170 贴个baka爷的代码留念.. 数据出的有问题,输入的字符串长度不超过1000 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<map> #include<queue> #incl

Hadoop自学笔记(一)常见Hadoop相关项目一览

本自学笔记来自于Yutube上的视频Hadoop系列.网址: https://www.youtube.com/watch?v=-TaAVaAwZTs(当中一个) 以后不再赘述 自学笔记,难免有各类错误纰漏.请看者谨慎. Hadoop的使用还有大数据时代什么的就不说了.Hadoop不是一个单独的工具,而是一整个生态系统.包括一系列工具.所以首先要先介绍一下Hadoop相关的工具和各类概念,是以后经常会接触到的. 1. Hadoop Core a) HDFS  Hadoop分布式文件系统,Hadoo

jQuery:自学笔记(5)——Ajax

jQuery:自学笔记(5)--Ajax 使用Ajax快捷函数 说明 出于简化AJAX开发工作的流程,jQuery提供了若干了快捷函数. 实例 1.显示 test.php 返回值(HTML 或 XML,取决于返回值). $.get("test.php", function(data){   alert("Data Loaded: " + data); }); 2.向页面 test.php 发送数据,并输出结果(HTML 或 XML,取决于所返回的内容): $.pos

jQuery:自学笔记(2)——jQuery选择器

jQuery:自学笔记(2)--jQuery选择器 基本选择器 说明 jQuery的基本选择器与CSS的选择器相似: 实例 标签选择器 //使用标签选择器更改字体大小 $(div).css('font-size','18px') ID选择器 //使用id选择器改变背景颜色 $('#div1').css('background','red'); 说明:ID选择器中,ID前面必须加一个#,以表明这是一个jQuery的ID选择器. 类选择器 //使用类选择器设置字体样式 $('.spanclass')

Java自学笔记(三)——输入

因为最近学的内容实际操作比较多,所以新的笔记就用代码为主体吧! 本回主要内容是输入,Java中主要用Scanner类和BufferedReader.总体来说不难,但有些细节可以总结,看代码: import java.io.*; import java.util.Scanner; public class ioTest { public static void main(String[] args) throws Exception { //Scanner提供了多种构造器,不同的构造器可以接受文件