使用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/ 日志记录是应用程序运行中必不可少的一部分.具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源.对于开 ...
随机推荐
- 【docker学习二】CentOS7.5+Docker 镜像(容器)的使用
承接上篇:https://mp.csdn.net/postedit/82744127 上文介绍了容器与镜像的基本操作,这里总结下容器的使用. 先在官网找到一个镜像: https://hub.docke ...
- python多线程爬取图片二
上一篇的多线程是使用类创建的,这一次使用函数创建多线程,还是同一个网站https://www.quanjing.com/category/1286521/1.html, 代码如下: # 多线程,自动创 ...
- SwiftLint:代码规范检查工具介绍
Swift-CodeStyle Checker:SwiftLint 介绍: SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具,基本上以 GitHub's Swift 代码风 ...
- 第一个SpringBoot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我 ...
- AntD使用timePiacker封装时间范围选择器(React hook版)
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- 201907 TIOBE 编程语言排行榜-Python坐稳第三
目录 一.编程语言7月排行榜 二.Top10编程语言指数走势(2002-2018) 三.历史排名(1988-2019) 四.编程语言"名人榜"( 2003-2018) 五.Top2 ...
- Oracle Awr报告_awr报告解读_基础简要信息
导出 关于awr报告的导出,上一篇博客已经进行过讲述了.博客链接地址:https://www.cnblogs.com/liyasong/p/oracle_report1.html 这里就不再赘述. ...
- 微服务-springboot多环境配置(开发生产测试环境切换)
springboot根据spring.profiles.active会去寻找应该加载开发环境配置还是生产环境配置 application.properties #生产环境,开发环境,测试环境切换 pr ...
- 常用的方法论-NPS
- SpringBoot 的过滤器
在Springboot里面读封装的一些常用的API,当然对过滤器也不类外了. 首先讲下Spring中的AOP的理解: AOP不是一种具体的技术,而是一种编程思想.在面向对象编程的过程中,我们很容易通过 ...