17.1、Log4j简介

作用:

1、 跟踪代码的运行轨迹。

2、 输出调试信息.

三大组成:

1、 Logger类-生成日志。

2、 Appender类-定义日志输出的目的地。

3、 Layout类-指定日志输出的格式。

17.1.1 Logger组件

日志共分为5种级别,从高到底(从严重到轻微)排序为:

FATAL—严重的错误,可能会导致程序不能正常运行.

ERROR – 错误,影响程序的正常运行。

WARN – 警告,不会影响程序的运行。最好将此问题修正。

INFO – 一般信息。不影响程序的运行。可能是用户的调试信息。可有可无。等同于syserr

DEBUG – 一般的信息。等同于sysout

上面五种级别分别对应以下几个方法 P255

fatal(Object)

error(Object)

warn(Object)

info(Object)

debug(Object) 

Trace(跟踪)

 

当信息大于或是等于配置的级别时才会输出日志。

17.1.2、Appender组件

(仅要求记住两个)

Console – 控制台。org.apache.log4j.ConsoleAppender

File    - 文件。  org.apache.log4j.FileAppender , org.apache.log4j.RollingFileAppender

17.1.3、Layout组件

功能是定义日志的输出格式

org.apache.log4j.HTMLLayout

org.apache.log4j.PatternLayout (自定义)

org.apache.log4j.SimpleLayout

对于自定义格式,see page 256 chart 17-1。

%d %p %c %m%n是我经常用的格式,要求记住.

%d – 具体的时间.

%p – 优先级

%c – 信息的输入类

%m%n – 信息文本

17.2、Log4j的基本使用方法

(以下以项目ch16为例)

步1、将log4j.jar文件,Copy到WEB-INF/lib目录下。

(此时发布程序,启动程序,会发出警告信息。信息要求配置log4j.properties文件)

步2、在src目录下(即WEB-INF/classes)建立一个log4j.properties文件

在WEB-INF/classes目录下,为log4j的默认目录。Log4j.properties也是log4j的默认文件名。

步3、书写log4j.properties文件如下:

#####配置根元素

log4j.rootLogger=INFO,file,console

#file的输入地址为文件

log4j.appender.file=org.apache.log4j.RollingFileAppender

#以下是具体的目录

log4j.appender.file.File=d:/a.log

#每个文件的最大大小

log4j.appender.file.MaxFileSize=512KB

#最多可以是多少个文件

log4j.appender.file.MaxBackupIndex=3

#信息的布局格式-按指定的格式打出

log4j.appender.file.layout=org.apache.log4j.PatternLayout

#具体的布局格式 - %d为时间

log4j.appender.file.layout.ConversionPattern=%d %p [%c] %m%n

#以下配置输出到控制台

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d %p [%c] %m%n

####以下配置自己的类输出日志的信息,即将com.three包下的日志输出到的目录

###同时也会打出到控制台。尽管是没有配置打出到控制台。但依据log4j的继承性,它仍然具体打出的控制台的功能。

log4j.category.com.three=INFO,myFile

log4j.appender.myFile=org.apache.log4j.RollingFileAppender

log4j.appender.myFile.File=d:/b.txt

log4j.appender.myFile.layout=org.apache.log4j.PatternLayout

log4j.appender.myFile.layout.ConversionPattern=%d %p [%c] %m%n

具体的说明,请参考上面以#号注释的部分。

注意上面红体字下面的部分,是书上没有讲的。此部分只配置对com.three包下的类指出日志信息。掌握具体配置的方法。

步4、书写自已的类,并在自己的类中使用日志

package com.three;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

/**

* 打出日志信息的类

* @version 1.0,2008-5-4

*/

public class ThreeAction extends Action{

//获取log对像

Logger log = Logger.getLogger(ThreeAction.class);

public ActionForward execute(ActionMapping mapping,

ActionForm form,

HttpServletRequest req,

HttpServletResponse rep){

log.info("Hello...我使用log打出的信息");

return mapping.findForward("success");

使用log4j进行日志管理的更多相关文章

  1. Spring Boot 整合 slf4j+log4j 实现日志管理

    一:首先新建一个jar项目,如下图: 二:添加log4j的依赖,如下pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0 ...

  2. commons-logging和Log4j 日志管理/log4j.properties配置详解

    commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...

  3. Spring集成log4j日志管理

    原文地址:http://blog.csdn.net/naruto1021/article/details/7969535 在使用Spring框架的时候,我们可以很方便的配置log4j来进行日志管理. ...

  4. android log4j日志管理的使用

    以下为log4j1的日志管理,在android 6.0 一下能正常使用,时候更加高级的胃log4j2,持续跟新 android中的log4j日志文件使用需要两个包,我们不需要进行配置文件的配置,一切都 ...

  5. springboot日志管理+集成log4j

    sprongboot使用的默认日志框架是Logback. 可以在application.properties配置简单日志属性,也可以单独配置logback.xml格式,还可以使用log4j来管理. 下 ...

  6. 项目log4j日志管理详解

    项目log4j日志管理详解 log4j日志系统在项目中重要性在这里就不再累述,我们在平时使用时如果没有特定要求,只需在log4j.properties文件中顶入输出级别就行了.如果要自定义输出文件,对 ...

  7. Log4j日志管理的简单实例

    大型项目中非常多情况下要分析程序的日志信息,怎样管理自己的日志信息至关重要. 在应用程序中加入日志记录总的来说基于三个目的 , 监视代码中变量的变化情况,周期性的记录到文件里供其它应用进行统计分析工作 ...

  8. Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)

    Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j) 博客分类: Java综合   第一.Logger.getLogger()和Log ...

  9. Java 日志管理最佳实践

    转:http://blog.jobbole.com/51155/ 日志记录是应用程序运行中必不可少的一部分.具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源.对于开 ...

随机推荐

  1. java基础知识总结(一)

    满满的干货=-= (一)环境变量的作用: 每个人刚开始学习java的时候,肯定都是安装JDK,配置环境变量,怎么配置网上教程很多很多,但是为什么这么配置呢? 我配置的环境变量: JAVA_HOME:C ...

  2. Java多线程(三):volatile

    volatile volatile是一种轻量同步机制.请看例子 MyThread25类 public class MyThread25 extends Thread{ private boolean ...

  3. kafka迁移topic

    1. 准备移动 这里假设要移动的topic名称为:topicA.topicB vim topics-to-move.json {"topics": [{"topic&qu ...

  4. python - 博客目录

    博客目录 python基础部分 函数 初识函数 函数进阶 装饰器函数 迭代器和生成器 内置函数和匿名函数 递归函数 常用模块 常用模块 模块和包 面向对象 初识面向对象 面向对象进阶 网络编程 网络编 ...

  5. 记2017沈阳ICPC

    2017沈阳ICPC 10月20日 早上十点抵达沈阳,趁着老师还没到,跑去故宫游玩了一下,玩到一点多回到宾馆,顺便吃了群里大佬说很好吃的喜家德虾饺(真的好好吃),回到宾馆后身体有点不舒服了,头晕晕的, ...

  6. [网络协议]UDP实现的可靠协议

    UDP实现的可靠协议,基本都会对TCP的某一部分进行加强,另外一部分进行削弱.因为: “实时性+可靠性+公平性” 三者不能同时保证,因此可以牺牲TCP的局部公平性来换取更好的实时性,或者更浪费点带宽, ...

  7. 深入理解C#的装箱和拆箱

    个人理解(本质): 封箱是把值类型转换为引用类型 拆箱是把引用类型转换为值类型 封箱是把值类型转换为System.Object类型,或者转换为由值类型实现的接口类型: 例如: struct Mystr ...

  8. spring的context:exclude-filter 与 context:include-filter

    1 在主容器中(applicationContext.xml),将Controller的注解打消掉 <context:component-scan base-package="com& ...

  9. 【深入浅出-JVM】(3):浮点数

    -5 浮点数推导 二进制转十进制 1 10000001 01000000000000000000000 1 10000001 101000000000000000000000 如果指数位不全为 0 则 ...

  10. 使用Optional摆脱NPE的折磨

    在目前的工作中,我对Java中的Stream和Lambda表达式都使用得很多,之前也写了两篇文章来总结对应的知识. 024:Java流实现Shell:cat 1.log | grep a | sort ...