使用log4j进行日志管理
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进行日志管理的更多相关文章
- Spring Boot 整合 slf4j+log4j 实现日志管理
一:首先新建一个jar项目,如下图: 二:添加log4j的依赖,如下pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0 ...
- commons-logging和Log4j 日志管理/log4j.properties配置详解
commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...
- Spring集成log4j日志管理
原文地址:http://blog.csdn.net/naruto1021/article/details/7969535 在使用Spring框架的时候,我们可以很方便的配置log4j来进行日志管理. ...
- android log4j日志管理的使用
以下为log4j1的日志管理,在android 6.0 一下能正常使用,时候更加高级的胃log4j2,持续跟新 android中的log4j日志文件使用需要两个包,我们不需要进行配置文件的配置,一切都 ...
- springboot日志管理+集成log4j
sprongboot使用的默认日志框架是Logback. 可以在application.properties配置简单日志属性,也可以单独配置logback.xml格式,还可以使用log4j来管理. 下 ...
- 项目log4j日志管理详解
项目log4j日志管理详解 log4j日志系统在项目中重要性在这里就不再累述,我们在平时使用时如果没有特定要求,只需在log4j.properties文件中顶入输出级别就行了.如果要自定义输出文件,对 ...
- Log4j日志管理的简单实例
大型项目中非常多情况下要分析程序的日志信息,怎样管理自己的日志信息至关重要. 在应用程序中加入日志记录总的来说基于三个目的 , 监视代码中变量的变化情况,周期性的记录到文件里供其它应用进行统计分析工作 ...
- Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)
Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j) 博客分类: Java综合 第一.Logger.getLogger()和Log ...
- Java 日志管理最佳实践
转:http://blog.jobbole.com/51155/ 日志记录是应用程序运行中必不可少的一部分.具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源.对于开 ...
随机推荐
- 深入浅出Ajax
原文(我的GitHub):https://github.com/liangfengbo/frontend-ability/issues/1 学习大纲 理解Ajax的工作原理 Ajax核心-XMLHtt ...
- node.js简单数据接口开发
随着网络时代的快速发展,前端开发不仅仅是做出漂亮的页面就可以了,还要会一点后端语言,那么后端语言有Java,php,node.js最常见,那我们应该学哪一种呢,为了让我们自己更好的学习,我推荐选择no ...
- HBase 学习之路(二)—— HBase系统架构及数据结构
一.基本概念 一个典型的Hbase Table 表如下: 1.1 Row Key (行键) Row Key是用来检索记录的主键.想要访问HBase Table中的数据,只有以下三种方式: 通过指定的R ...
- laravel-admin(自定义表单与验证)
场景: 很多时候,由于我们业务场景比较特殊,需要自定义表单,然后框架给我提供了对应表单组建! 案列:以创建一个字段为列 1.在控制器对应的方法中调用表单组建创建表单 public function c ...
- 使用jinja2模板引擎生成html文件
使用jinja2模板引擎生成html文件 jinja2是纯Python的模板引擎,是仿照Django模板的Python模板语言. 它速度快,被广泛使用,提供了可选的沙箱模板执行环境保证安全. 使用pi ...
- 有意思的 CDN
Clean Clean false 7.8 磅 0 2 false false false EN-US ZH-CN AR-SA /* Style Definitions */ table.MsoNor ...
- iOS组件化开发一远端私有库建立(二)
公共库业务,基础层划分! 一.构建私有云,本文推荐为码云 1.构建名称为LuckTimeSpec,选择私有建立: 2.Copy地址的https 链接: 二.打开终端 输入: cd /Users/zha ...
- js动态生成数据的抓取
需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的 ...
- scrapy实战2分布式爬取lagou招聘(加入了免费的User-Agent随机动态获取库 fake-useragent 使用方法查看:https://github.com/hellysmile/fake-useragent)
items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentati ...
- gh-ost
目录 1.简介 2.为什么不用触发器 ? 3.命名由来 4.亮点 5.使用 6.它是如何工作的? 7.工作模式 7.1.模式1 -- 连上从库,在主库上修改 7.2.模式2 -- 直接在主库上修改 7 ...